summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2010-04-14 20:59:01 +0000
committerGrant Gayed <ggayed>2010-04-14 20:59:01 +0000
commit9ab14bbc386609b0008cce66eda40fcd56285bea (patch)
tree862ebfd0ae32481148f105cbc8831e87becb5ad3 /bundles/org.eclipse.swt/Eclipse SWT/gtk
parent8fa7f7faacb842324a4b31775936f9e83dd5a81b (diff)
downloadeclipse.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.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java21
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) {