(Fx_popup_dialog, Fx_popup_menu): Handle case where
authorRichard M. Stallman <rms@gnu.org>
Fri, 18 Mar 1994 01:27:43 +0000 (01:27 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 18 Mar 1994 01:27:43 +0000 (01:27 +0000)
mouse_position_hook doesn't store anything.

src/xmenu.c

index 1d3bf19..4a38b7f 100644 (file)
@@ -672,13 +672,19 @@ cached information about equivalent key sequences.")
       if (EQ (position, Qt))
        {
          /* Use the mouse's current position.  */
-         FRAME_PTR new_f;
+         FRAME_PTR new_f = 0;
          Lisp_Object bar_window;
          int part;
          unsigned long time;
 
-         (*mouse_position_hook) (&new_f, &bar_window, &part, &x, &y, &time);
-         XSET (window, Lisp_Frame, new_f);
+         if (new_f != 0)
+           XSET (window, Lisp_Frame, new_f);
+         else
+           {
+             window = selected_window;
+             XFASTINT (x) = 0;
+             XFASTINT (y) = 0;
+           }
        }
       else
        {
@@ -884,13 +890,21 @@ cached information about equivalent key sequences.")
       if (EQ (position, Qt))
        {
          /* Use the mouse's current position.  */
-         FRAME_PTR new_f;
+         FRAME_PTR new_f = 0;
          Lisp_Object bar_window;
          int part;
          unsigned long time;
 
          (*mouse_position_hook) (&new_f, &bar_window, &part, &x, &y, &time);
-         XSET (window, Lisp_Frame, new_f);
+
+         if (new_f != 0)
+           XSET (window, Lisp_Frame, new_f);
+         else
+           {
+             window = selected_window;
+             XFASTINT (x) = 0;
+             XFASTINT (y) = 0;
+           }
        }
 
       CHECK_NUMBER (x, 0);
@@ -1808,7 +1822,6 @@ xdialog_show (f, x, y, menubarp, keymaps, title, error)
   /* No selection has been chosen yet.  */
   menu_item_selection = 0;
 
-
   /* Display the menu.  */
   lw_pop_up_all_widgets (dialog_id);