#ifdef USE_GTK
/* gtk just uses utf-8. */
# define ENCODE_MENU_STRING(str) ENCODE_UTF_8 (str)
+#elif defined HAVE_X_I18N
+# define ENCODE_MENU_STRING(str) ENCODE_SYSTEM (str)
#else
# define ENCODE_MENU_STRING(str) string_make_unibyte (str)
#endif
record_unwind_protect (pop_down_menu, make_save_value (menu, 0));
- /* Set this to one. popup_widget_loop increases it by one, so it becomes
- two. show_help_echo uses this to detect popup menus. */
- popup_activated_flag = 1;
- /* Process events that apply to the menu. */
- popup_widget_loop (1, menu);
+ if (GTK_WIDGET_MAPPED (menu))
+ {
+ /* Set this to one. popup_widget_loop increases it by one, so it becomes
+ two. show_help_echo uses this to detect popup menus. */
+ popup_activated_flag = 1;
+ /* Process events that apply to the menu. */
+ popup_widget_loop (1, menu);
+ }
unbind_to (specpdl_count, Qnil);