From: Vadim Zeitlin Date: Thu, 21 Mar 2013 22:36:46 +0000 (+0000) Subject: Disable Unity global menu while native modal dialogs are shown in wxGTK. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/3c2f3a60d1e8e825075f40b65f612ff1853a6773 Disable Unity global menu while native modal dialogs are shown in wxGTK. We need to use wxOpenModalDialogLocker even with native GTK+ dialogs to prevent the menu commands from being available while they're shown, so do it in wxMessageDialog and wxColourDialog which call gtk_dialog_run(). Closes #14823. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/colordlg.cpp b/src/gtk/colordlg.cpp index 87b61d2d44..b3a806d5b2 100644 --- a/src/gtk/colordlg.cpp +++ b/src/gtk/colordlg.cpp @@ -28,6 +28,7 @@ #include #include "wx/gtk/private.h" #include "wx/gtk/private/gtk2-compat.h" +#include "wx/gtk/private/dialogcount.h" #if wxUSE_LIBHILDON #include @@ -87,6 +88,8 @@ int wxColourDialog::ShowModal() ColourDataToDialog(); + wxOpenModalDialogLocker modalLocker; + gint result = gtk_dialog_run(GTK_DIALOG(m_widget)); gtk_widget_hide(m_widget); diff --git a/src/gtk/msgdlg.cpp b/src/gtk/msgdlg.cpp index b01e51b13e..2c561dfca3 100644 --- a/src/gtk/msgdlg.cpp +++ b/src/gtk/msgdlg.cpp @@ -30,6 +30,7 @@ #include "wx/gtk/private.h" #include "wx/gtk/private/messagetype.h" #include "wx/gtk/private/mnemonics.h" +#include "wx/gtk/private/dialogcount.h" #if wxUSE_LIBHILDON #include @@ -295,6 +296,8 @@ int wxMessageDialog::ShowModal() if (m_parent) gtk_window_present( GTK_WINDOW(m_parent->m_widget) ); + wxOpenModalDialogLocker modalLocker; + gint result = gtk_dialog_run(GTK_DIALOG(m_widget)); GTKDisconnect(m_widget); gtk_widget_destroy(m_widget);