X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b541538fa514aaecb5c988f05a7d581d49074072..ed8385818f26035d2f60d3a719250ffab48e6c34:/src/gtk/dialog.cpp diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp index 425aac9ae9..056a469fea 100644 --- a/src/gtk/dialog.cpp +++ b/src/gtk/dialog.cpp @@ -112,6 +112,13 @@ int wxDialog::ShowModal() return GetReturnCode(); } + // release the mouse if it's currently captured as the window having it + // will be disabled when this dialog is shown -- but will still keep the + // capture making it impossible to do anything in the modal dialog itself + wxWindow * const win = wxWindow::GetCapture(); + if ( win ) + win->GTKReleaseMouseAndNotify(); + // use the apps top level window as parent if none given unless explicitly // forbidden if ( !GetParent() && !(GetWindowStyleFlag() & wxDIALOG_NO_PARENT) ) @@ -135,7 +142,7 @@ int wxDialog::ShowModal() // NOTE: gtk_window_set_modal internally calls gtk_grab_add() ! gtk_window_set_modal(GTK_WINDOW(m_widget), TRUE); - wxEventLoop().Run(); + wxGUIEventLoop().Run(); gtk_window_set_modal(GTK_WINDOW(m_widget), FALSE);