summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilenio Quarti <silenio_quarti@ca.ibm.com>2012-11-28 11:05:23 -0500
committerSilenio Quarti <silenio_quarti@ca.ibm.com>2012-11-28 11:06:32 -0500
commit4f39524476b3bb384185bf121444794fe6c9e687 (patch)
tree019576dd53567a359ae3f7ab93c39e261bb1106f
parentb31a2c4fef115f61f56aab574a9b54fe849df0f4 (diff)
downloadeclipse.platform.swt-4f39524476b3bb384185bf121444794fe6c9e687.tar.gz
eclipse.platform.swt-4f39524476b3bb384185bf121444794fe6c9e687.tar.xz
eclipse.platform.swt-4f39524476b3bb384185bf121444794fe6c9e687.zip
Bug 388402 - List gets into bad state when an item is removed from context menu trigger
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/List.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/List.java b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/List.java
index dffd19de3b..33ab4ba9c8 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/List.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/cocoa/org/eclipse/swt/widgets/List.java
@@ -1112,14 +1112,21 @@ boolean sendKeyEvent (NSEvent nsEvent, int type) {
}
boolean sendMouseEvent (NSEvent nsEvent, int type, boolean send) {
- if (type == SWT.MouseDown) {
- mouseIsDown = true;
- } else if (type == SWT.MouseUp || type == SWT.DragDetect) {
- mouseIsDown = false;
-
- if (rowsChanged) {
- rowsChanged = false;
- ((NSTableView)view).noteNumberOfRowsChanged();
+ boolean handleMouseDown = true;
+ if (nsEvent != null) {
+ long /*int*/ nsType = nsEvent.type();
+ handleMouseDown = nsType == OS.NSLeftMouseDown || nsType == OS.NSLeftMouseUp;
+ }
+ if (handleMouseDown) {
+ if (type == SWT.MouseDown) {
+ mouseIsDown = true;
+ } else if (type == SWT.MouseUp || type == SWT.DragDetect) {
+ mouseIsDown = false;
+
+ if (rowsChanged) {
+ rowsChanged = false;
+ ((NSTableView)view).noteNumberOfRowsChanged();
+ }
}
}
return super.sendMouseEvent(nsEvent, type, send);