diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java index 0229d47fe8..ec36b15bae 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java @@ -3283,6 +3283,16 @@ long /*int*/ gtk_motion_notify_event (long /*int*/ widget, long /*int*/ event) { y = pointer_y [0]; state = mask [0]; } + if (OS.GTK3 && this != display.currentControl) { + if (display.currentControl != null && !display.currentControl.isDisposed ()) { + display.removeMouseHoverTimeout (display.currentControl.handle); + display.currentControl.sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, x, y, false, state); + } + if (!isDisposed ()) { + display.currentControl = this; + sendMouseEvent (SWT.MouseEnter, 0, gdkEvent.time, x, y, false, state); + } + } int result = sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x, y, gdkEvent.is_hint != 0, state) ? 0 : 1; return result; } |