From c654c7c20d03028b5cf3835bfb217c26962fef53 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 2 Apr 2014 22:38:36 +0000 Subject: [PATCH] Fix return value of wxRichMessageDialog with only an "OK" button. Apply the same workaround as was applied in r67771 to wxMessageDialog to wxRichMessageDialog and map IDCANCEL returned from it to IDOK if "Cancel" is the only button in the dialog -- as in this case it's really just a renamed (for convenience of allowing the user to use "Esc" to close it) "OK". Closes #16153. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@76254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/msw/richmsgdlg.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index d227b04427..98cafc4b42 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -653,6 +653,7 @@ wxMSW: - Fix clicking on togglable columns in wxDataViewCtrl (Laurent Poujoulat). - Fix expander in non left-most position in wxDataViewCtrl (Laurent Poujoulat). - Don't fail when using large paper sizes in print preview. +- Fix wxRichMessageDialog return value for dialog with only "OK" button. wxOSX: diff --git a/src/msw/richmsgdlg.cpp b/src/msw/richmsgdlg.cpp index 11ca12e0a2..5a97225887 100644 --- a/src/msw/richmsgdlg.cpp +++ b/src/msw/richmsgdlg.cpp @@ -73,6 +73,16 @@ int wxRichMessageDialog::ShowModal() } m_checkBoxValue = checkBoxChecked != FALSE; + // In case only an "OK" button was specified we actually created a + // "Cancel" button (see comment in MSWCommonTaskDialogInit). This + // results in msAns being IDCANCEL while we want IDOK (just like + // how the native MessageBox function does with only an "OK" button). + if ( (msAns == IDCANCEL) + && !(GetMessageDialogStyle() & (wxYES_NO|wxCANCEL)) ) + { + msAns = IDOK; + } + return MSWTranslateReturnCode( msAns ); } #endif // wxHAS_MSW_TASKDIALOG