diff options
author | Grant Gayed <ggayed> | 2010-04-14 20:59:01 +0000 |
---|---|---|
committer | Grant Gayed <ggayed> | 2010-04-14 20:59:01 +0000 |
commit | 9ab14bbc386609b0008cce66eda40fcd56285bea (patch) | |
tree | 862ebfd0ae32481148f105cbc8831e87becb5ad3 /bundles/org.eclipse.swt/Eclipse SWT/gtk | |
parent | 8fa7f7faacb842324a4b31775936f9e83dd5a81b (diff) | |
download | eclipse.platform.swt-9ab14bbc386609b0008cce66eda40fcd56285bea.tar.gz eclipse.platform.swt-9ab14bbc386609b0008cce66eda40fcd56285bea.tar.xz eclipse.platform.swt-9ab14bbc386609b0008cce66eda40fcd56285bea.zip |
fix sending of MouseEnter/MouseExit events
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk')
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java | 4 | ||||
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java | 21 |
2 files changed, 22 insertions, 3 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java index b286425f68..10f99d3988 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Composite.java @@ -251,7 +251,7 @@ Widget [] computeTabList () { } void createHandle (int index) { - state |= HANDLE | CANVAS; + state |= HANDLE | CANVAS | CHECK_SUBWINDOW; boolean scrolled = (style & (SWT.H_SCROLL | SWT.V_SCROLL)) != 0; if (!scrolled) state |= THEME_BACKGROUND; createHandle (index, true, scrolled || (style & SWT.BORDER) != 0); @@ -1412,7 +1412,7 @@ void showWidget () { } boolean checkSubwindow () { - return true; + return (state & CHECK_SUBWINDOW) != 0; } boolean translateMnemonic (Event event, Control control) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java index 7f5d0ebaf6..5da5ebe8c8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java @@ -98,7 +98,10 @@ public abstract class Widget { /* Notify of the opportunity to skin this widget */ static final int SKIN_NEEDED = 1<<24; - + + /* Should sub-windows be checked when EnterNotify received */ + static final int CHECK_SUBWINDOW = 1<<25; + /* Default size for widgets */ static final int DEFAULT_WIDTH = 64; static final int DEFAULT_HEIGHT = 64; @@ -176,6 +179,7 @@ public abstract class Widget { static final int LAST_SIGNAL = 70; static final String IS_ACTIVE = "org.eclipse.swt.internal.control.isactive"; //$NON-NLS-1$ + static final String KEY_CHECK_SUBWINDOW = "org.eclipse.swt.internal.control.checksubwindow"; //$NON-NLS-1$ /** * Prevents uninitialized instances from being created outside the package. @@ -514,6 +518,9 @@ public Object getData () { public Object getData (String key) { checkWidget(); if (key == null) error (SWT.ERROR_NULL_ARGUMENT); + if (key.equals (KEY_CHECK_SUBWINDOW)) { + return new Boolean ((state & CHECK_SUBWINDOW) != 0); + } if (key.equals(IS_ACTIVE)) return new Boolean(isActive ()); if ((state & KEYED_DATA) != 0) { Object [] table = (Object []) data; @@ -1423,6 +1430,18 @@ public void setData (Object data) { public void setData (String key, Object value) { checkWidget(); if (key == null) error (SWT.ERROR_NULL_ARGUMENT); + + if (key.equals (KEY_CHECK_SUBWINDOW)) { + if (value != null && value instanceof Boolean) { + if (((Boolean)value).booleanValue ()) { + state |= CHECK_SUBWINDOW; + } else { + state &= ~CHECK_SUBWINDOW; + } + } + return; + } + int index = 1; Object [] table = null; if ((state & KEYED_DATA) != 0) { |