summaryrefslogtreecommitdiff
path: root/PC/launcher.c
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2013-02-26 16:29:06 +0000
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2013-02-26 16:29:06 +0000
commitaf21cb4d570b0a0c4b105bb051a0c56604c4052a (patch)
treebfd82dacb539966069a3244732fcac704cb57082 /PC/launcher.c
parentff099b8a31617dba343fa18e4f104e5293c8b1ed (diff)
downloadcpython-af21cb4d570b0a0c4b105bb051a0c56604c4052a.tar.gz
Closes #17290: Loading cursor now does not persist when launching GUI scripts.
Diffstat (limited to 'PC/launcher.c')
-rw-r--r--PC/launcher.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/PC/launcher.c b/PC/launcher.c
index dfad44a359..445e96e573 100644
--- a/PC/launcher.c
+++ b/PC/launcher.c
@@ -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