(xm_popup_menu): New arg `event'.
authorRichard M. Stallman <rms@gnu.org>
Wed, 2 Aug 1995 07:14:04 +0000 (07:14 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 2 Aug 1995 07:14:04 +0000 (07:14 +0000)
lwlib/lwlib-Xm.c

index 48730c5..7979450 100644 (file)
@@ -1409,23 +1409,26 @@ xm_destroy_instance (instance)
 
 \f/* popup utility */
 void
-xm_popup_menu (widget)
+xm_popup_menu (widget, event)
      Widget widget;
+     XEvent *event;
 {
   XButtonPressedEvent dummy;
-  XEvent* event;
-
-  dummy.type = ButtonPress;
-  dummy.serial = 0;
-  dummy.send_event = 0;
-  dummy.display = XtDisplay (widget);
-  dummy.window = XtWindow (XtParent (widget));
-  dummy.time = 0;
-  dummy.button = 0;
-  XQueryPointer (dummy.display, dummy.window, &dummy.root,
-                &dummy.subwindow, &dummy.x_root, &dummy.y_root,
-                &dummy.x, &dummy.y, &dummy.state);
-  event = (XEvent *) &dummy;
+
+  if (event == 0)
+    {
+      dummy.type = ButtonPress;
+      dummy.serial = 0;
+      dummy.send_event = 0;
+      dummy.display = XtDisplay (widget);
+      dummy.window = XtWindow (XtParent (widget));
+      dummy.time = 0;
+      dummy.button = 0;
+      XQueryPointer (dummy.display, dummy.window, &dummy.root,
+                    &dummy.subwindow, &dummy.x_root, &dummy.y_root,
+                    &dummy.x, &dummy.y, &dummy.state);
+      event = (XEvent *) &dummy;
+    }
 
   if (event->type == ButtonPress || event->type == ButtonRelease)
     {