diff options
author | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2012-11-28 11:05:23 -0500 |
---|---|---|
committer | Silenio Quarti <silenio_quarti@ca.ibm.com> | 2012-11-28 11:06:32 -0500 |
commit | 4f39524476b3bb384185bf121444794fe6c9e687 (patch) | |
tree | 019576dd53567a359ae3f7ab93c39e261bb1106f | |
parent | b31a2c4fef115f61f56aab574a9b54fe849df0f4 (diff) | |
download | eclipse.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.java | 23 |
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); |