From a560d9743a45663fd4a054b9c62b6b09784d0bbe Mon Sep 17 00:00:00 2001 From: Jan Djärv Date: Sun, 10 Jul 2011 18:55:22 +0200 Subject: * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event for non-popups. Fixes: debbugs:3642 --- src/ChangeLog | 5 +++++ src/xmenu.c | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0bd67db5f80..020972edd2d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-07-10 Jan Djärv + + * xmenu.c (menu_highlight_callback): Only pass frame to show_help_event + for non-popups (Bug#3642). + 2011-07-10 Andreas Schwab * alloc.c (reset_malloc_hooks): Protoize. diff --git a/src/xmenu.c b/src/xmenu.c index fc629b35104..b4338c1d653 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -740,10 +740,13 @@ menu_highlight_callback (GtkWidget *widget, gpointer call_data) help = call_data ? cb_data->help : Qnil; /* If popup_activated_flag is greater than 1 we are in a popup menu. - Don't show help for them, they won't appear before the - popup is popped down. */ - if (popup_activated_flag <= 1) - show_help_event (cb_data->cl_data->f, widget, help); + Don't pass the frame to show_help_event for those. + Passing frame creates an Emacs event. As we are looping in + popup_widget_loop, it won't be handeled. Passing NULL shows the tip + directly without using an Emacs event. This is what the Lucid code + does below. */ + show_help_event (popup_activated_flag <= 1 ? cb_data->cl_data->f : NULL, + widget, help); } #else static void -- cgit v1.2.3