X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94e0018723919fe2ca2f5b5f0a42804c16dbf3a1..fb8d7eb7a880f1f2e32d8830f9c5e12b2536e05f:/src/gtk/msgdlg.cpp diff --git a/src/gtk/msgdlg.cpp b/src/gtk/msgdlg.cpp index 2b47ac27ef..6d1104ae62 100644 --- a/src/gtk/msgdlg.cpp +++ b/src/gtk/msgdlg.cpp @@ -24,10 +24,13 @@ #include "wx/intl.h" #endif +#include "wx/modalhook.h" + +#include #include "wx/gtk/private.h" #include "wx/gtk/private/messagetype.h" #include "wx/gtk/private/mnemonics.h" -#include +#include "wx/gtk/private/dialogcount.h" #if wxUSE_LIBHILDON #include @@ -166,15 +169,13 @@ void wxMessageDialog::GTKCreateMsgDialog() } wxString message; -#if GTK_CHECK_VERSION(2, 6, 0) bool needsExtMessage = false; - if ( gtk_check_version(2, 6, 0) == NULL && !m_extendedMessage.empty() ) + if (!m_extendedMessage.empty()) { message = m_message; needsExtMessage = true; } - else // extended message not needed or not supported -#endif // GTK+ 2.6+ + else // extended message not needed { message = GetFullMessage(); } @@ -186,7 +187,6 @@ void wxMessageDialog::GTKCreateMsgDialog() "%s", (const char*)wxGTK_CONV(message)); -#if GTK_CHECK_VERSION(2, 6, 0) if ( needsExtMessage ) { gtk_message_dialog_format_secondary_text @@ -196,7 +196,6 @@ void wxMessageDialog::GTKCreateMsgDialog() (const char *)wxGTK_CONV(m_extendedMessage) ); } -#endif // GTK+ 2.6+ #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2/!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 g_object_ref(m_widget); @@ -277,6 +276,8 @@ void wxMessageDialog::GTKCreateMsgDialog() int wxMessageDialog::ShowModal() { + WX_HOOK_MODAL_DIALOG(); + // break the mouse capture as it would interfere with modal dialog (see // wxDialog::ShowModal) wxWindow * const win = wxWindow::GetCapture(); @@ -295,7 +296,10 @@ 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); g_object_unref(m_widget); m_widget = NULL;