]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed assertion failure if Ok or Cancel button is clicked in a modeless dialog (bug...
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Jun 2004 23:20:27 +0000 (23:20 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Jun 2004 23:20:27 +0000 (23:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/dialog.h
src/msw/dialog.cpp

index bbe72cdf874126fc2d80b66f406414a7e318998c..879ae3a79d45ab386f6024e1ff909b357a93f17e 100644 (file)
@@ -113,6 +113,9 @@ protected:
     // common part of all ctors
     void Init();
 
+    // end either modal or modeless dialog
+    void EndDialog(int rc);
+
 private:
     wxWindow*   m_oldFocus;
     bool        m_endModalCalled; // allow for closing within InitDialog
index 5aee28f39c33adf77520e0a507c6a658b59aa451..edb0b0dab3eb08f87b3e52874a633852da18f41f 100644 (file)
@@ -368,7 +368,15 @@ void wxDialog::EndModal(int retCode)
     m_endModalCalled = true;
     SetReturnCode(retCode);
 
-    Show(false);
+    Hide();
+}
+
+void wxDialog::EndDialog(int rc)
+{
+    if ( IsModal() )
+        EndModal(rc);
+    else
+        Hide();
 }
 
 // ----------------------------------------------------------------------------
@@ -380,7 +388,7 @@ void wxDialog::OnOK(wxCommandEvent& WXUNUSED(event))
 {
   if ( Validate() && TransferDataFromWindow() )
   {
-      EndModal(wxID_OK);
+      EndDialog(wxID_OK);
   }
 }
 
@@ -394,7 +402,7 @@ void wxDialog::OnApply(wxCommandEvent& WXUNUSED(event))
 
 void wxDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
 {
-    EndModal(wxID_CANCEL);
+    EndDialog(wxID_CANCEL);
 }
 
 void wxDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event))