diff src/w32menu.c @ 73695:3901ff3eaf2c

(Fmenu_or_popup_active_p): New function. (syms_of_w32menu): Defsubr it. (popup_activated_flag, popup_activated): Remove.
author Eli Zaretskii <eliz@gnu.org>
date Sun, 05 Nov 2006 12:17:26 +0000
parents 15d914de92fd
children 177184091f28
line wrap: on
line diff
--- a/src/w32menu.c	Sun Nov 05 12:16:51 2006 +0000
+++ b/src/w32menu.c	Sun Nov 05 12:17:26 2006 +0000
@@ -235,10 +235,6 @@
 /* Current depth within submenus.  */
 static int menu_items_submenu_depth;
 
-/* Flag which when set indicates a dialog or menu has been posted by
-   Xt on behalf of one of the widget sets.  */
-static int popup_activated_flag;
-
 static int next_menubar_widget_id;
 
 /* This is set nonzero after the user activates the menu bar, and set
@@ -994,6 +990,17 @@
   complete_deferred_msg (FRAME_W32_WINDOW (f), WM_INITMENU, 0);
 }
 
+/* The following is used by delayed window autoselection.  */
+
+DEFUN ("menu-or-popup-active-p", Fmenu_or_popup_active_p, Smenu_or_popup_active_p, 0, 0, 0,
+       doc: /* Return t if a menu or popup dialog is active on selected frame.  */)
+     ()
+{
+  FRAME_PTR f;
+  f = SELECTED_FRAME ();
+  return (f->output_data.w32->menubar_active > 0) ? Qt : Qnil;
+}
+
 /* This callback is called from the menu bar pulldown menu
    when the user makes a selection.
    Figure out what the user chose
@@ -2148,7 +2155,6 @@
 
   /* Display the menu.  */
   lw_pop_up_all_widgets (dialog_id);
-  popup_activated_flag = 1;
 
   /* Process events that apply to the menu.  */
   popup_get_selection ((XEvent *) 0, FRAME_X_DISPLAY_INFO (f), dialog_id);
@@ -2428,13 +2434,6 @@
   return 1;
 }
 
-int
-popup_activated ()
-{
-  /* popup_activated_flag not actually used on W32 */
-  return 0;
-}
-
 /* Display help string for currently pointed to menu item. Not
    supported on NT 3.51 and earlier, as GetMenuItemInfo is not
    available. */
@@ -2549,6 +2548,7 @@
   staticpro (&Qdebug_on_next_call);
 
   defsubr (&Sx_popup_menu);
+  defsubr (&Smenu_or_popup_active_p);
 #ifdef HAVE_MENUS
   defsubr (&Sx_popup_dialog);
 #endif