- 
    Bug 
- 
    Resolution: Done
- 
    P2: Important 
- 
    None
- 
    5.5.1
- 
    None
- 
        e7bf0edfd49de9a4d8285fbe8d878f8fda910e6d
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.
- 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
 
-