From 58b928aca8029a4ebc63b0120a7afb93db4e8691 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 28 Feb 2014 11:59:30 +0100 Subject: [PATCH] Windows: Fix return value of WM_QUERYENDSESSION for bogus messages. LRESULT should be non-zero if the application can quit, and it is always handled. Improves 97d8e3b2007abf7b14b4ccbfbbc4abdeef712bcf . Task-number: QTBUG-35986 Change-Id: I0ad95bc20a5d9e2a52c76bdcdfa986595f6a08d8 Reviewed-by: Oliver Wolff Reviewed-by: Joerg Bornemann --- src/plugins/platforms/windows/qwindowscontext.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index f67fb9bc19..6462cb8d3e 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -971,8 +971,10 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, #if !defined(Q_OS_WINCE) && !defined(QT_NO_SESSIONMANAGER) case QtWindows::QueryEndSessionApplicationEvent: { QWindowsSessionManager *sessionManager = platformSessionManager(); - if (sessionManager->isActive()) // bogus message from windows + if (sessionManager->isActive()) { // bogus message from windows + *result = sessionManager->wasCanceled() ? 0 : 1; return true; + } sessionManager->setActive(true); sessionManager->blocksInteraction();