*** empty log message ***
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Control.java
index 751ec55..ce41ffe 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Control.java
@@ -987,12 +987,31 @@
OS.GetSuperControl (theControl [0], theControl);
}
if (theControl [0] == 0) return;
+ theControl [0] = cursorControl;
+ do {
+ Widget widget = WidgetTable.get (theControl [0]);
+ if (widget != null) {
+ if (widget instanceof Control) {
+ Control control = (Control) widget;
+ if (control.isEnabled ()) break;
+ }
+ }
+ OS.GetSuperControl (theControl [0], theControl);
+ } while (theControl [0] != 0);
+ if (theControl [0] == 0) {
+ theControl [0] = theRoot [0];
+ Widget widget = WidgetTable.get (theControl [0]);
+ if (widget != null && widget instanceof Control) {
+ Control control = (Control) widget;
+ theControl [0] = control.handle;
+ }
+ }
org.eclipse.swt.internal.carbon.Point localPoint = new org.eclipse.swt.internal.carbon.Point ();
localPoint.h = (short) inPoint.x;
localPoint.v = (short) inPoint.y;
int modifiers = OS.GetCurrentEventKeyModifiers ();
boolean [] cursorWasSet = new boolean [1];
- OS.HandleControlSetCursor (cursorControl, localPoint, (short) modifiers, cursorWasSet);
+ OS.HandleControlSetCursor (theControl [0], localPoint, (short) modifiers, cursorWasSet);
if (!cursorWasSet [0]) OS.SetThemeCursor (OS.kThemeArrowCursor);
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java
index 5bb16ff..ea23877 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/carbon/org/eclipse/swt/widgets/Display.java
@@ -1207,6 +1207,7 @@
Widget widget = WidgetTable.get (theControl [0]);
if (widget != null && widget instanceof Control) {
control = (Control) widget;
+ theControl[0] = control.handle;
}
}
}