* src/gtkutil.c (menu_bar_button_pressed_cb): Only update menu
bar if no menu is active, and the event window is not the widget
window itself. Also make menu in use.
* src/pgtkmenu.c (popup_deactivate_callback): Make menu not in
use.
* src/xdisp.c (redisplay_internal): Return if popup_activated
also on PGTK.
{
struct frame *f = user_data;
- if (event->button.button < 4)
- set_frame_menubar (f, true);
+ if (event->button.button < 4
+ && event->button.window != gtk_widget_get_window (widget)
+ && !popup_activated ())
+ {
+ pgtk_menu_set_in_use (true);
+ set_frame_menubar (f, true);
+ }
return false;
}
#include <gtk/gtk.h>
/* Flag which when set indicates a dialog or menu has been posted by
- Xt on behalf of one of the widget sets. */
+ GTK on behalf of one of the widget sets. */
static int popup_activated_flag;
/* Set menu_items_inuse so no other popup menu or dialog is created. */
static void
popup_deactivate_callback (GtkWidget *widget, gpointer client_data)
{
- popup_activated_flag = 0;
+ pgtk_menu_set_in_use (false);
}
/* Function that finds the frame for WIDGET and shows the HELP text
if (!fr->glyphs_initialized_p)
return;
-#if defined (USE_X_TOOLKIT) || (defined (USE_GTK) && !defined (HAVE_PGTK)) || defined (HAVE_NS)
+#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS)
if (popup_activated ())
- {
- return;
- }
+ return;
#endif
#if defined (HAVE_HAIKU)