]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/dialog_osx.cpp
new file added
[wxWidgets.git] / src / osx / dialog_osx.cpp
index 05da19bcc876f7a36617e0bd0a134f0993aa9f67..da2c32afece2da807ca4292e67b7f5183e82a845 100644 (file)
@@ -40,9 +40,6 @@ void wxDialog::OSXEndModalDialog()
     s_openDialogs--;
 }
 
-
-IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxTopLevelWindow)
-
 void wxDialog::Init()
 {
     m_modality = wxDIALOG_MODALITY_NONE;
@@ -83,7 +80,7 @@ wxDialog::~wxDialog()
 // about it
 bool wxDialog::IsEscapeKey(const wxKeyEvent& event)
 {
-    if ( event.GetKeyCode() == '.' && event.GetModifiers() == wxMOD_CMD )
+    if ( event.GetKeyCode() == '.' && event.GetModifiers() == wxMOD_CONTROL )
         return true;
 
     return wxDialogBase::IsEscapeKey(event);
@@ -118,7 +115,12 @@ bool wxDialog::Show(bool show)
 
     if ( !show )
     {
-        switch( m_modality )
+        const int modalityOrig = m_modality;
+
+        // complete the 'hiding' before we send the event
+        m_modality = wxDIALOG_MODALITY_NONE;
+
+        switch ( modalityOrig )
         {
             case wxDIALOG_MODALITY_WINDOW_MODAL:
                 EndWindowModal(); // OS X implementation method for cleanup
@@ -127,7 +129,6 @@ bool wxDialog::Show(bool show)
             default:
                 break;
         }
-        m_modality = wxDIALOG_MODALITY_NONE;
     }
 
     return true;