]> granicus.if.org Git - python/commitdiff
Closes #17290: Loading cursor now does not persist when launching GUI scripts.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 26 Feb 2013 16:29:06 +0000 (16:29 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Tue, 26 Feb 2013 16:29:06 +0000 (16:29 +0000)
PC/launcher.c

index dfad44a35936befc6295a9f33f3ac63734a577db..445e96e573781d8c10f7589c856991a1cb5620e7 100644 (file)
@@ -500,6 +500,21 @@ run_child(wchar_t * cmdline)
     STARTUPINFOW si;
     PROCESS_INFORMATION pi;
 
+#if defined(_WINDOWS)
+    // When explorer launches a Windows (GUI) application, it displays
+    // the "app starting" (the "pointer + hourglass") cursor for a number
+    // of seconds, or until the app does something UI-ish (eg, creating a
+    // window, or fetching a message).  As this launcher doesn't do this
+    // directly, that cursor remains even after the child process does these
+    // things.  We avoid that by doing a simple post+get message.
+    // See http://bugs.python.org/issue17290 and 
+    // https://bitbucket.org/vinay.sajip/pylauncher/issue/20/busy-cursor-for-a-long-time-when-running
+    MSG msg;
+
+    PostMessage(0, 0, 0, 0);
+    GetMessage(&msg, 0, 0, 0);
+#endif
+
     debug(L"run_child: about to run '%s'\n", cmdline);
     job = CreateJobObject(NULL, NULL);
     ok = QueryInformationJobObject(job, JobObjectExtendedLimitInformation,
@@ -1362,4 +1377,4 @@ int cdecl wmain(int argc, wchar_t ** argv)
     return process(argc, argv);
 }
 
-#endif
\ No newline at end of file
+#endif