From 6614fa6bfa931dc0669486ca1489b7ab3082ccfc Mon Sep 17 00:00:00 2001 From: Amartya Parijat Date: Wed, 16 Oct 2024 10:33:06 +0200 Subject: [PATCH] Replace AbstractHoverInformationControl on FocusIn With this commit, the hover information control can be replaced on the focus in event. contributes to https://github.com/eclipse-platform/eclipse.platform.swt/issues/1540 --- .../jface/text/AbstractHoverInformationControlManager.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/AbstractHoverInformationControlManager.java b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/AbstractHoverInformationControlManager.java index f35accda33f..4c604541ddc 100644 --- a/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/AbstractHoverInformationControlManager.java +++ b/bundles/org.eclipse.jface.text/src/org/eclipse/jface/text/AbstractHoverInformationControlManager.java @@ -139,6 +139,7 @@ public void start(Rectangle subjectArea) { fDisplay.addFilter(SWT.FocusOut, this); + fDisplay.addFilter(SWT.FocusIn, this); fDisplay.addFilter(SWT.MouseDown, this); fDisplay.addFilter(SWT.MouseUp, this); @@ -270,6 +271,7 @@ else if (event.type == SWT.MouseVerticalWheel && cancelReplacingDelay()) } break; + case SWT.FocusIn: case SWT.MouseUp: case SWT.MouseDown: if (!hasInformationControlReplacer()) @@ -282,7 +284,7 @@ else if (!isReplaceInProgress()) { if (!(iControl5.containsControl(control))) { hideInformationControl(); } else if (cancelReplacingDelay()) { - if (event.type == SWT.MouseUp) { + if (event.type == SWT.MouseUp || event.type == SWT.FocusIn) { stop(); // avoid that someone else replaces the info control before the async is exec'd if (infoControl instanceof IDelayedInputChangeProvider) { final IDelayedInputChangeProvider delayedICP= (IDelayedInputChangeProvider) infoControl;