]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/utilsexc.cpp
fixes fo inheriting colours set with SetOwnBackround()
[wxWidgets.git] / src / msw / utilsexc.cpp
index 8899b5e0f128fdff2701f2b61c49e3551e9f00fa..5ba14aad626e2a7064579b3221400dce7ed35da7 100644 (file)
@@ -888,11 +888,17 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
         return pi.dwProcessId;
     }
 
-    wxAppTraits *traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
-    wxCHECK_MSG( traits, -1, _T("no wxAppTraits in wxExecute()?") );
+    wxAppTraits *traits = NULL;
+    void *cookie wxDUMMY_INITIALIZE(NULL);
+    if ( !(flags & wxEXEC_NODISABLE) )
+    {
+        if ( wxTheApp )
+            traits = wxTheApp->GetTraits();
+        wxCHECK_MSG( traits, -1, _T("no wxAppTraits in wxExecute()?") );
 
-    // disable all app windows while waiting for the child process to finish
-    void *cookie = traits->BeforeChildWaitLoop();
+        // disable all app windows while waiting for the child process to finish
+        cookie = traits->BeforeChildWaitLoop();
+    }
 
     // wait until the child process terminates
     while ( data->state )
@@ -910,7 +916,8 @@ long wxExecute(const wxString& cmd, int flags, wxProcess *handler)
         traits->AlwaysYield();
     }
 
-    traits->AfterChildWaitLoop(cookie);
+    if ( traits )
+        traits->AfterChildWaitLoop(cookie);
 
     DWORD dwExitCode = data->dwExitCode;
     delete data;