Details
-
Bug
-
Resolution: Done
-
P2: Important
-
None
-
5.5.1
-
None
-
e7bf0edfd49de9a4d8285fbe8d878f8fda910e6d
Description
In
QGuiApplicationPrivate::commitData()
the two lines
if (session_manager->allowsInteraction() && !tryCloseAllWindows())
session_manager->cancel();
cause windows to be closed, which results in the application quitting if QGuiApplication::quitOnLastWindowClosed() is true, which is the default.
That is NOT what the SaveYourself message of the X session management protocol is supposed to trigger in applications. See:
http://www.x.org/releases/X11R7.6/doc/libSM/xsmp.html#protocol
Currently, qxcbsessionmanager.cpp is the only call site of QPlatformSessionManager::appCommitData(), which calls QGuiApplication::commitData(), so QGuiApplication::commitData() should implement at least the XSMP spec correctly.
This bug prevents some KDE applications from restoring correctly.
Attachments
Issue Links
- is duplicated by
-
QTBUG-49939 QGuiApplication wrongly tries to ::tryCloseAllWindows() in QGuiApplicationPrivate::commitData()
- Closed
-
QTBUG-49241 Should not close windows after emitting commitDataRequest()
- Closed
- relates to
-
QTBUG-83646 Fallback session management causes Qt apps exit early on GNOME
- Closed