]> git.eshelyaron.com Git - emacs.git/commitdiff
* XMenu.h (XMenuActivateSetWaitFunction): New function.
authorJan Djärv <jan.h.d@swipnet.se>
Fri, 12 Nov 2004 08:28:57 +0000 (08:28 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Fri, 12 Nov 2004 08:28:57 +0000 (08:28 +0000)
* Activate.c (XMenuActivateSetWaitFunction): New function.
(XMenuActivate): Call wait_func if set, before XNextEvent.

oldXMenu/Activate.c
oldXMenu/ChangeLog
oldXMenu/XMenu.h

index 840c423471bda0764d95168d60cb8c15545c6dd2..363b225a3559fce6c2a7c3945626c03dffdabc08 100644 (file)
 /* For debug, set this to 0 to not grab the keyboard on menu popup */
 int x_menu_grab_keyboard = 1;
 
+typedef void (*Wait_func)();
+
+static Wait_func wait_func;
+static void* wait_data;
+
+void
+XMenuActivateSetWaitFunction (func, data)
+     Wait_func func;
+     void *data;
+{
+  wait_func = func;
+  wait_data = data;
+}
+
 int
 XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data,
              help_callback)
@@ -266,6 +280,7 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data,
      * Begin event processing loop.
      */
     while (1) {
+        if (wait_func) (*wait_func) (wait_data);
        XNextEvent(display, &event);    /* Get next event. */
        switch (event.type) {           /* Dispatch on the event type. */
     case Expose:
@@ -557,6 +572,8 @@ XMenuActivate(display, menu, p_num, s_num, x_pos, y_pos, event_mask, data,
        free((char *)feq_tmp);
     }
 
+    wait_func = 0;
+
     /*
      * Return successfully.
      */
index 4bcd8120556124f2690d9ea8962df0b8a52776c2..ab86c364736876d5a702883d52b2e08cd17ccbb1 100644 (file)
@@ -1,3 +1,10 @@
+2004-11-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
+
+       * XMenu.h (XMenuActivateSetWaitFunction): New function.
+
+       * Activate.c (XMenuActivateSetWaitFunction): New function.
+       (XMenuActivate): Call wait_func if set, before XNextEvent.
+
 2002-04-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 
        * Activate.c: Add calls to GrabKeyboard to remove strange
index fde2a954620d57251d3e101a346b9d1fa2862d11..46e390d3b0ac1f73829b89106a553a6be2dc5815 100644 (file)
@@ -251,6 +251,7 @@ int XMenuRecompute();
 int XMenuEventHandler();       /* No value actually returned. */
 int XMenuLocate();
 int XMenuSetFreeze();          /* No value actually returned. */
+void XMenuActivateSetWaitFunction();
 int XMenuActivate();
 char *XMenuPost();
 int XMenuDeletePane();