diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 0285a47912..d535b232da 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -4368,6 +4368,13 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y ) gtk_get_current_event_time() ); + // it is possible for gtk_menu_popup() to fail + if (!gtk_widget_get_visible(GTK_WIDGET(menu->m_menu))) + { + menu->m_popupShown = false; + return false; + } + while (menu->m_popupShown) { gtk_main_iteration();