@@ -139,6 +139,7 @@ public void start(Rectangle subjectArea) {
139139
140140 fDisplay .addFilter (SWT .FocusOut , this );
141141
142+ fDisplay .addFilter (SWT .FocusIn , this );
142143 fDisplay .addFilter (SWT .MouseDown , this );
143144 fDisplay .addFilter (SWT .MouseUp , this );
144145
@@ -270,6 +271,7 @@ else if (event.type == SWT.MouseVerticalWheel && cancelReplacingDelay())
270271 }
271272 break ;
272273
274+ case SWT .FocusIn :
273275 case SWT .MouseUp :
274276 case SWT .MouseDown :
275277 if (!hasInformationControlReplacer ())
@@ -282,7 +284,7 @@ else if (!isReplaceInProgress()) {
282284 if (!(iControl5 .containsControl (control ))) {
283285 hideInformationControl ();
284286 } else if (cancelReplacingDelay ()) {
285- if (event .type == SWT .MouseUp ) {
287+ if (event .type == SWT .MouseUp || event . type == SWT . FocusIn ) {
286288 stop (); // avoid that someone else replaces the info control before the async is exec'd
287289 if (infoControl instanceof IDelayedInputChangeProvider ) {
288290 final IDelayedInputChangeProvider delayedICP = (IDelayedInputChangeProvider ) infoControl ;
@@ -335,9 +337,11 @@ private void handleMouseMove(Event event) {
335337 //transform coordinates to subject control:
336338 Point mouseLoc = event .display .map (eventControl , fSubjectControl , event .x , event .y );
337339
338- if (fSubjectArea .contains (mouseLoc ))
340+ if (fSubjectArea .contains (mouseLoc )) {
341+ System .out .println ("returning" + event .type );
339342 return ;
340-
343+ }
344+ System .out .println ("CONTINUING" + event .type );
341345 IInformationControl iControl = getCurrentInformationControl ();
342346 if (!hasInformationControlReplacer () || !canMoveIntoInformationControl (iControl )) {
343347 if (AbstractHoverInformationControlManager .this instanceof AnnotationBarHoverManager ) {
0 commit comments