X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a6739128bcb9b5b68f0c2e74170ef62663b3a7..32bcf97466effcd064f239561763aff56e7d79c6:/src/msw/dialog.cpp diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp index 7b4ad2baaa..1f9459d57d 100644 --- a/src/msw/dialog.cpp +++ b/src/msw/dialog.cpp @@ -40,7 +40,7 @@ #include "wx/msw/private.h" #include "wx/evtloop.h" -#include "wx/ptr_scpd.h" +#include "wx/scopedptr.h" #if defined(__SMARTPHONE__) && defined(__WXWINCE__) #include "wx/msw/wince/resources.h" @@ -147,7 +147,6 @@ void wxDialog::Init() { m_isShown = false; m_modalData = NULL; - m_endModalCalled = false; #if wxUSE_TOOLBAR && defined(__POCKETPC__) m_dialogToolBar = NULL; #endif @@ -193,8 +192,6 @@ bool wxDialog::Create(wxWindow *parent, wxDialog::~wxDialog() { - m_isBeingDeleted = true; - // this will also reenable all the other windows for a modal dialog Show(false); @@ -281,14 +278,11 @@ int wxDialog::ShowModal() { wxASSERT_MSG( !IsModal(), _T("ShowModal() can't be called twice") ); - m_endModalCalled = false; - Show(); // EndModal may have been called from InitDialog handler (called from - // inside Show()), which would cause an infinite loop if we didn't take it - // into account - if ( !m_endModalCalled ) + // inside Show()) and hidden the dialog back again + if ( IsShown() ) { // enter and run the modal loop wxDialogModalDataTiedPtr modalData(&m_modalData, @@ -303,7 +297,6 @@ void wxDialog::EndModal(int retCode) { wxASSERT_MSG( IsModal(), _T("EndModal() called for non modal dialog") ); - m_endModalCalled = true; SetReturnCode(retCode); Hide();