Skip to content

Commit 660db66

Browse files
committed
Replace AbstractHoverInformationControl on FocusIn
With this commit, the hover information control can be replaced on the focus in event. contributes to eclipse-platform/eclipse.platform.swt#1540
1 parent 7d29a59 commit 660db66

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/AbstractHoverInformationControlManager.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)