*** empty log message ***
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
index 9d891e8..4c1fb02 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/motif/org/eclipse/swt/widgets/Composite.java
@@ -803,14 +803,22 @@
/* Set focus for a canvas with no children */
if ((state & CANVAS) != 0) {
+ XButtonEvent xEvent = new XButtonEvent ();
+ OS.memmove (xEvent, call_data, XButtonEvent.sizeof);
if ((style & SWT.NO_FOCUS) == 0 && hooksKeys ()) {
- XButtonEvent xEvent = new XButtonEvent ();
- OS.memmove (xEvent, call_data, XButtonEvent.sizeof);
if (xEvent.button == 1) {
if (getChildrenCount () == 0) setFocus ();
}
}
- OS.memmove (continue_to_dispatch, new int [1], 4);
+ /*
+ * Bug in Motif. On Solaris 8 only, stopping the other event
+ * handlers from being invoked after a menu has been displayed
+ * causes a segment fault. The fix is to not stop the event for
+ * button 3.
+ */
+ if (xEvent.button != 3) {
+ OS.memmove (continue_to_dispatch, new int [1], 4);
+ }
return 1;
}
return result;