Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarolyn MacLeod2012-03-10 18:15:23 +0000
committerCarolyn MacLeod2012-03-10 21:42:25 +0000
commitd4768e1203a5077ab3bf6ed0bdc55f1be7dbe216 (patch)
tree4da48c39b0c2efe9635d40c0b258f751980a21f1
parentcfe6ffcea1d99dc4b4ce3146d2ad4b9c767e7566 (diff)
downloadeclipse.platform.swt-d4768e1203a5077ab3bf6ed0bdc55f1be7dbe216.tar.gz
eclipse.platform.swt-d4768e1203a5077ab3bf6ed0bdc55f1be7dbe216.tar.xz
eclipse.platform.swt-d4768e1203a5077ab3bf6ed0bdc55f1be7dbe216.zip
Mac VoiceOver calls menuForEvent. Fix CCombo.
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java10
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Control.java3
3 files changed, 12 insertions, 5 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
index 7914898d6a..f835690345 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java
@@ -1750,10 +1750,18 @@ void textEvent (Event event) {
case SWT.MenuDetect: {
Event e = new Event ();
e.time = event.time;
+ e.detail = event.detail;
e.x = event.x;
e.y = event.y;
- e.detail = event.detail;
+ if (event.detail == SWT.MENU_KEYBOARD) {
+ Point pt = getDisplay().map(text, null, text.getCaretLocation());
+ e.x = pt.x;
+ e.y = pt.y;
+ }
notifyListeners (SWT.MenuDetect, e);
+ event.doit = e.doit;
+ event.x = e.x;
+ event.y = e.y;
break;
}
case SWT.Modify: {
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
index 78bf72f3cb..9dc35aba62 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/StyledText.java
@@ -5969,9 +5969,7 @@ void handleKeyUp(Event event) {
*/
void handleMenuDetect(Event event) {
if (event.detail == SWT.MENU_KEYBOARD) {
- Point point = getPointAtOffset(caretOffset);
- Display display = getDisplay();
- point = display.map(this, null, point);
+ Point point = getDisplay().map(this, null, getPointAtOffset(caretOffset));
event.x = point.x;
event.y = point.y;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Control.java
index b778e836ea..3b3685417a 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/Control.java
@@ -2418,7 +2418,8 @@ int /*long*/ menuForEvent (int /*long*/ id, int /*long*/ sel, int /*long*/ theEv
Event event = new Event ();
event.x = x;
event.y = y;
- event.detail = SWT.MENU_MOUSE;
+ NSEvent nsEvent = new NSEvent(theEvent);
+ event.detail = nsEvent.buttonNumber() > 0 ? SWT.MENU_MOUSE : SWT.MENU_KEYBOARD;
sendEvent (SWT.MenuDetect, event);
//widget could be disposed at this point
if (isDisposed ()) return 0;

Back to the top