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
For Gerrit Dashboard: QTBUG-49667 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
142232,4 | Don't close windows when requested to save application state. | 5.5 | qt/qtbase | Status: ABANDONED | 0 | 0 |
146566,2 | Add option to disable "session management by closing windows". | 5.6 | qt/qtbase | Status: ABANDONED | -2 | 0 |
148274,10 | Add option to disable "session management by closing windows". | 5.6.0 | qt/qtbase | Status: MERGED | +2 | 0 |