]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dialog.cpp
libjpeg not used by default (it didn't even link)
[wxWidgets.git] / src / msw / dialog.cpp
index af8ad17747895acf791c5095da56cca3f9e90dbc..9f5bbaa74b521b3cd9d6ce14450277440ca3eb0a 100644 (file)
@@ -361,6 +361,10 @@ bool wxDialog::Show(bool show)
           TranslateMessage(&msg);
           DispatchMessage(&msg);
         }
+
+        // If we get crashes (as per George Tasker's message) with nested modal dialogs,
+        // we should try removing the m_modalShowing test
+
         if (m_modalShowing && !::PeekMessage(&msg, 0, 0, 0, PM_NOREMOVE))
         // dfgg: NB MUST test m_modalShowing again as the message loop could have triggered
         //       a Show(FALSE) in the mean time!!!
@@ -376,9 +380,12 @@ bool wxDialog::Show(bool show)
       node=disabledWindows.First();
       while(node) {
         wxWindow* win = (wxWindow*) node->Data();
-        HWND hWnd = (HWND) win->GetHWND();
-        if (::IsWindow(hWnd) && (wxModalDialogs.Member(win) || wxModelessWindows.Member(win) ))
-          ::EnableWindow(hWnd,TRUE);
+        if (wxModalDialogs.Member(win) || wxModelessWindows.Member(win))
+        {
+          HWND hWnd = (HWND) win->GetHWND();
+          if (::IsWindow(hWnd))
+            ::EnableWindow(hWnd,TRUE);
+        }
         node=node->Next();
       }
     }
@@ -506,7 +513,7 @@ void wxDialog::EndModal(int retCode)
 WXHBRUSH wxDialog::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
       WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
 {
-#if CTL3D
+#if wxUSE_CTL3D
   HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
   return (WXHBRUSH) hbrush;
 #else
@@ -582,7 +589,7 @@ void wxDialog::OnSize(wxSizeEvent& WXUNUSED(event))
 void wxDialog::OnCloseWindow(wxCloseEvent& event)
 {
     // Compatibility
-    if ( GetEventHandler()->OnClose() || event.GetForce())
+    if ( GetEventHandler()->OnClose() || !event.CanVeto())
     {
         this->Destroy();
     }
@@ -600,7 +607,7 @@ bool wxDialog::Destroy(void)
 
 void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event)
 {
-#if CTL3D
+#if wxUSE_CTL3D
   Ctl3dColorChange();
 #else
   SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));