diff src/xmenu.c @ 72854:f295b430aa3a

* xterm.c (x_initialize): Don't install Xt event timer here. (x_timeout_atimer_activated_flag): New var. (x_activate_timeout_atimer): New function to install Xt timer. (x_send_scroll_bar_event, x_process_timeouts): Use it. * xmenu.c (x_menu_set_in_use, popup_activate_callback) (create_and_show_popup_menu, create_and_show_dialog): Use it. * xterm.h (x_activate_timeout_atimer): prototype.
author Chong Yidong <cyd@stupidchicken.com>
date Wed, 13 Sep 2006 22:39:23 +0000
parents 6db6c056fc46
children 332f0639af48 a1a25ac6c88a
line wrap: on
line diff
--- a/src/xmenu.c	Wed Sep 13 22:28:03 2006 +0000
+++ b/src/xmenu.c	Wed Sep 13 22:39:23 2006 +0000
@@ -1182,6 +1182,10 @@
 {
   menu_items_inuse = in_use ? Qt : Qnil;
   popup_activated_flag = in_use;
+#ifdef USE_X_TOOLKIT
+  if (popup_activated_flag)
+    x_activate_timeout_atimer ();
+#endif
 }
 
 /* Wait for an X event to arrive or for a timer to expire.  */
@@ -1498,6 +1502,9 @@
      XtPointer client_data;
 {
   popup_activated_flag = 1;
+#ifdef USE_X_TOOLKIT
+  x_activate_timeout_atimer ();
+#endif
 }
 #endif
 
@@ -2798,6 +2805,7 @@
   /* Display the menu.  */
   lw_popup_menu (menu, (XEvent *) &dummy);
   popup_activated_flag = 1;
+  x_activate_timeout_atimer ();
 
   {
     int fact = 4 * sizeof (LWLIB_ID);
@@ -3175,6 +3183,7 @@
   /* Display the dialog box.  */
   lw_pop_up_all_widgets (dialog_id);
   popup_activated_flag = 1;
+  x_activate_timeout_atimer ();
 
   /* Process events that apply to the dialog box.
      Also handle timers.  */