changeset 58167:9351060ba546

* XMenu.h (XMenuActivateSetWaitFunction): New function. * Activate.c (XMenuActivateSetWaitFunction): New function. (XMenuActivate): Call wait_func if set, before XNextEvent.
author Jan Djärv <jan.h.d@swipnet.se>
date Fri, 12 Nov 2004 08:28:57 +0000
parents e0ba1fe44b88
children ab22e6ae6fac
files oldXMenu/Activate.c oldXMenu/ChangeLog oldXMenu/XMenu.h
diffstat 3 files changed, 25 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/oldXMenu/Activate.c	Fri Nov 12 04:06:13 2004 +0000
+++ b/oldXMenu/Activate.c	Fri Nov 12 08:28:57 2004 +0000
@@ -85,6 +85,20 @@
 /* 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 @@
      * 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 @@
 	free((char *)feq_tmp);
     }
 
+    wait_func = 0;
+
     /*
      * Return successfully.
      */
--- a/oldXMenu/ChangeLog	Fri Nov 12 04:06:13 2004 +0000
+++ b/oldXMenu/ChangeLog	Fri Nov 12 08:28:57 2004 +0000
@@ -1,3 +1,10 @@
+2004-11-12  Jan Dj,Ad(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,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* Activate.c: Add calls to GrabKeyboard to remove strange
--- a/oldXMenu/XMenu.h	Fri Nov 12 04:06:13 2004 +0000
+++ b/oldXMenu/XMenu.h	Fri Nov 12 08:28:57 2004 +0000
@@ -251,6 +251,7 @@
 int XMenuEventHandler();	/* No value actually returned. */
 int XMenuLocate();
 int XMenuSetFreeze();		/* No value actually returned. */
+void XMenuActivateSetWaitFunction();
 int XMenuActivate();
 char *XMenuPost();
 int XMenuDeletePane();