From dd53b347de7a318a07ae843700eebe2be4679f37 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Mon, 22 Nov 2010 12:49:07 +0000 Subject: [PATCH] Don't try to center task dialogs under Windows. This is either unnecessary or doesn't work anyhow (they are always centered on the parent window) and just results in debug error messages. Simply don't do anything in wxMessageDialog::Centre() when using task dialog implementation under MSW. Closes #12699. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/msgdlg.h | 4 ++++ src/msw/msgdlg.cpp | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/wx/msw/msgdlg.h b/include/wx/msw/msgdlg.h index 784d339b61..30573d8eac 100644 --- a/include/wx/msw/msgdlg.h +++ b/include/wx/msw/msgdlg.h @@ -32,6 +32,10 @@ public: // return the font used for the text in the message box static wxFont GetMessageFont(); +protected: + // Override this as task dialogs are always centered on parent. + virtual void DoCentre(int dir); + private: // hook procedure used to adjust the message box beyond what the standard // MessageBox() function can do for us diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp index f6057f7361..35332c4d70 100644 --- a/src/msw/msgdlg.cpp +++ b/src/msw/msgdlg.cpp @@ -600,6 +600,19 @@ int wxMessageDialog::ShowModal() return ShowMessageBox(); } +void wxMessageDialog::DoCentre(int dir) +{ +#ifdef wxHAS_MSW_TASKDIALOG + // Task dialog is always centered on its parent window and trying to center + // it manually doesn't work because its HWND is not created yet so don't + // even try as this would only result in (debug) error messages. + if ( HasNativeTaskDialog() ) + return; +#endif // wxHAS_MSW_TASKDIALOG + + return wxMessageDialogBase::DoCentre(dir); +} + // ---------------------------------------------------------------------------- // Helpers of the wxMSWMessageDialog namespace // ---------------------------------------------------------------------------- -- 2.45.2