# HG changeset patch # User Richard M. Stallman # Date 763954063 0 # Node ID 6240067bfe33819a37017bafff05875575dd43c7 # Parent a829e78755425cfdc92c2c6136a87108574f5ac1 (Fx_popup_dialog, Fx_popup_menu): Handle case where mouse_position_hook doesn't store anything. diff -r a829e7875542 -r 6240067bfe33 src/xmenu.c --- a/src/xmenu.c Fri Mar 18 00:31:13 1994 +0000 +++ b/src/xmenu.c Fri Mar 18 01:27:43 1994 +0000 @@ -672,13 +672,19 @@ 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 @@ 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 @@ /* No selection has been chosen yet. */ menu_item_selection = 0; - /* Display the menu. */ lw_pop_up_all_widgets (dialog_id);