[Touch-packages] [Bug 1446865]
(In reply to Storm Engineer from comment #58) > The following do NOT get restored: > - Firefox https://forum.kde.org/viewtopic.php?f=111=131515 > Isn't Chrome using Qt tho? No. And as mentioned, Qt (vlc) still *is* broken itr. It by this patch just got the *option* to not act brokenly. Every client needs to opt into that. (But that's not been different with Qt4, just no additional Qt API was required then and kdelibs fixed it for most KDE applications implicitly) > I have another issue which may be related, but the two are spanning across > different time frames so it doesn't seem likely. This issue is shutdown > being halt with "A stop job is running for session c2 of user" with a 1:30 Seems a systemd bug, see https://bugs.freedesktop.org/show_bug.cgi?id=70593 or https://bugs.freedesktop.org/show_bug.cgi?id=70593 It might be related to firefox session management, you could try whether you also get this problems when quitting all applications (ensure there're no stale processes left!) before exitting the session and then (if it's now gone) see whether adding some process back at the session end (ie. leave dolphin running, try shutdown; then leave firefox for the next shutdown) causes this. The process may not quit on sigterm. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Fix Released Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Firefox or cairo-dock were certainly not targetted or affected by the related patches. This only affects Qt applications directly, so if that indeed triggered something, either the session crashes on logout or the mentioned applications used some timer based self-quitting (and are thus no more alive when the session ends) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Fix Released Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Please file a review request (attaching the frameworks group), the bug is assigned to Seli and I'm not sure anybody but us reads it. I can already say that it lacks a QT_VERSION test. About the Qt side, one might want to consider using a Qt::ApplicationAttribute instead? "Qt::AA_DoNotKludgeSessionSaving"? -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
So, looking into the Qt sources a bit more it seems that a) Session management is FUBAR in Qt5 and actually was likewise FU in Qt4 - adding the proposed flag will only restore the completely FU condition of Qt4, ie. allow clients (KDE) to workaround the brokeness ... b) this actually *only* seems to affect the xcb platform ("GuiApplicationPrivate::commitData()" is only called by "QPlatformSessionManager::appCommitData()" which is only called by "sm_performSaveYourself(QXcbSessionManager *sm)" in QXcbSessionManager) Restoring the Qt4 state however won't cut it: KApplication is deprecated and there's no Guarantee for a KMainWindow around. Also every "plain" Qt5 client that can be found on KDE users desktops (qupzilla, trojita, ... whatever) won't be covered. If you "seem to be the expert on session management" we need to define a roadmap out of this mess, or it's never gonna happen. What do you think about this process: 1. emit commitDataRequest() 2. at this point either the logout should be canceled (requires API addition on QSessionManager to wire up sm_cancel; internal requirement only though. Maybe kept in d_ptr contexts) or there thould be no windows with QWidget::isWindowModified() or modal transients around since that indicates some user interaction should have taken place but didn't 3. If we detect missing interaction, spam a QMessageBox and inform/ask the user: "It looks like the application should have intercepted the logout request, but didn't. Do you wish to cancel the logout and explicitly save data? Since this is an application bug and this failsafe check will be removed with Qt6, please file a bug against the application." 4. If this still didn't cancel the logout, start closing windows depending on an application attribute (see below) and a trumping environment variable QT_CLOSE_WINDOWS_ON_LOGOUT_REQUEST (to pass the user ultimate control over the behavior) 5. Remove attribute, failsafe check and (actually even documented, we can NO WAY just remove this in Qt5) window closing in Qt6 I'd go for the application attribute since indeed there's little point in adding functions to implement a short-term workaround. Actually, I might even be in favor of a dynamic property (QObject::setProperty()) since it will spare the clients compile time checks - we an add this to KFooBar now, even though Qt 5.6 (or whatever) is not on the horizon. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Well, "shrug, I don't care then" - Qt seems to be dropping desktop support anyway, so it probably doesn't really matter. For principal reasins I'd however object " proven to be not broken by being around for over 10 years": It wasn't "broken" because one major client class (KDE) simply replaced that "unbroken" code. Nor did I mean to support directly "changing behavior" - I simply suggested to raise awareness of the problem by intercepting "this looks unimplemented" conditions to allow getting rid of the "unbroken" code in Qt6 w/o pain. Closing windows certainly is wrong (and apparently wasn't done before Qt4, seems more like a closeEvent was faked previously) because it alters the session even on a canceled session exit, regardless on whether it breaks restoring them (which one would kludge away in the session manager) Ok, bottom line is SM is FUBAR on Qt5 and there's no intention to ever fix that, merely re-allow client code to bypass the broken Qt behavior. I'll tag future bugs respectively. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Fun fact (though you likely already know) - KApplication::commitData(.) *did* send a fake close event to everything but KMainWindow ... -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
(In reply to Alexey Chernov from comment #30) > The same way commercial customers or applications would be affected with API > changes. How an ABI styable API extension could affect anyone is frankly beyond me - I doubt it will help to resolve the problem but there's really no problem with it. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
(In reply to Andreas Hartmetz from comment #27) > We can, however, implement a workaround in KDE (and then fix our stuff when > something breaks): > [...] > Now which repository should that go in? It would be ugly to copy and paste > the necessary code around - it should be roughly ten lines. That's some sort of problem. KXmlGui/KMainWindow would cover mostâ„¢ cases, but certainly not all. The idea of KF5 is to merely optionally extend Qt and the QPA plugin would affect every Qt application. Since this will however also require to fix the application wrt listening to the datacommit request itfp, this could only apply to the fixed cases - which would for a general fix then be KMainWindow, calling queryClose() on this occasion. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
How exactly did you try the kwrite crashing workaround? Just by sending a zombie closeEvent? Do you still have a backtrace? (Let's say it's legit for a leaf widget to assume that the close event it doesn't ignore() will cause a close with all implications on future user interaction, data deletion and stuff, but it's not necessarily good style. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
(In reply to Alexey Chernov from comment #23) > Comments like this clearly don't help Seriously, you asked for breaking clients because that's what you'd "like" to do - what did you expect to hear? That's simply not an acceptable stance. > Never mentioned minor update or particular version. Please don't distort. So you meant to schedule this for Qt6? > Users were already hit when the significant part of functionality important > for someone's every day use case is broken. Let's be honest: session restorage is apparently relevant for only a minority of users. Loosing your data is however relevant for everyone. And the latter is the by far more severe issue. Restarting applications is merely an annoyance, loosing your work is truely expensive. Also there's absolutely NO reason why we should not care about both - except that you'd "like" to break client code and risk data loss for some reason that completely escapes me. > Still better than a couple of API methods like "enableSpecifiedBehaviour()" I fully agree on that proposal to be of little help - it will be mostly ignored or used w/o accounting the implications. > Once again: we all could already apply the fix of Andreas and be busy fixing > the necessary applications rather than keep discussing here. It does NOT only affect KDE applications, there're hundreds of Qt applications which might have adopted this pattern - or simply don't care about session management itfp. Also the proper order is to fix and roll out clients, *then* remove the deprecated upstream code. That's why "=> Qt6" for this approach. > On the Qt6 release you would say that everyone already rely on the > workaround there was in Qt5 etc. etc. No. Because you would tell people during Qt5 don't do this and don't rely on it because it's not gonna work with Qt6, so that when things are ported to Qt6, client code has to be fixed. Breaking it now and depending client behavior on whether it's linked against Qt 5.6 or Qt 5.7 is plain wrong and begging for trouble. > I just kindly remind your description of current Plasma 5 and it's > application state: https://bugs.kde.org/show_bug.cgi?id=341930#c30. Off topic? This was a global statement. Session management in particular is a different thing: few people seem to really care about restoring sessions. > In a couple of years We'll have seen Qt6 and this removed, but even if not - it doesn't matter. The QGuiApplication code will have a "// TODO Qt6" comment and the client code does not care about why there's a close event (which might be rejected, thus not causing eg. deletion anyway) > The only arguable point is whether it's safe to have it fixed now or should > another (possible API-changing) workaround should be added instead. No. Actually I propose to fix the "workaround" already present in QGuiApplication by turning "close()" into just sendind a close event (for that's actually the desired action) and by this fix session storage and maintain data protection with the present approaches. Breaking that behavior may happen for Qt6, anything else will be perceived as regression. On a sidenote: QGuiApplication::commitDataRequest() may be the "preferred" hook, but there's actually nothing that explicitly forbids "fake a close in addition", notably since it will trigger similar, if not equal client code. Given the status quo, I'd probably even just remove the commitDataRequest signal in Qt6 and rely only on faking close events - why should client code have to care about two different "aboutToClose" signals? Sounds stupid to me. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
(In reply to Alexey Chernov from comment #25) > According to what? According to "This is not fixed in years and each and every session management code was ported as "#if 0"" If there was some relevant interest, it would be fixed long time, since it's really not that hard. > > Loosing your data is however relevant for everyone. And the latter is the by > > far more severe issue. Restarting applications is merely an annoyance, > > loosing your work is truely expensive. > Hey, how could session management be "apparently relevant for only a > minority of users", but fixes in its behaviour be crucial for a lot of them? [...] > Fully agree here, but we should confirm that nobody said in the beggining > that upstream changes were about to break session management for KF5 > applications. It was just broken. Errr... what? Session management (in terms of "please restore the desktop as I left it") doesn't seem very important, but if you click "logout" and *booom*, gone is your work of the last two hours because the application had no chance (or, well, listened to the wrong events) to ask you to save it, that's pretty important... We're apparently talking past each other. There're two steps: a) logout, clients ask to save your stuff. That works (because of the close event) b) login, clients should restart. That's broken (because the close event is not just an event, but the window "illegally" being withdrawn during logout) You propse to fix (b) by breaking (a) and I'm trying to convince you that this is a really bad idea. > bugs which should be fixed either in library and its clients. It's better to > fix them when no one really relies on the stability too much. It looks like > this time is now for KF5-based application and environment. Yes, we should fix KMainWindow now (if faking close events is finally not considered a permanent behavior despite the majority of clients will probably do that in return to the data commit request - with a fair share actually just calling close() ...) but that has absolutely no implications on whether it's ok to easily break away from established (even though maybe wrong) behavior. > No, that's just postponing and messing up the whole problem. If, as you > stated, almost no one implemented easy and pretty simple interaction > appeared in Qt5, even less would care of possible bugs and corner cases of > the workaround, more complex protocol with close event you propose. There > would be just another argument that it's just too messy, not to mention > already existing argument that no one uses session management. Sorry, but I really cannot read any sense into this paragraph. Please try to rephrase it. The above isn't English grammar at all. > It won't be fixed until it's broken So you demand to jeopardize userdata because otherwise code won't be fixed. Sorry, but there's no way you're ever gonna convince me in this. Any solution that builds upon "jeopardize userdata" is not a solution at all. It's malicious. > I'm pretty sure there would be packages that would require just > most recent Qt version, and it would be acceptable. And jeopardize userdata. What exactly should this help in this case? > What's wrong in relying on changes in recent Qt release That you are not. "Recent Qt releases" start to jeopardize userdata because (no way) all Qt client code has been fixed, ie. distros must not use Qt 5.7 until all client code releases picked up the change. > In this way all the bugfixes should be postponed till Qt6 If a bugfix is *very* likely gonna break more things more badly than it fixes and there is absolutely no need to take this risk? Yes, avoid that fix and come up with a more robust interim solution. > By the way, are you completely sure your changes won't break any clients? > What if someone relies exactly on the current code? Err, on the close event? Well, that's exactly what I suggest to preserve. You're not gonna see more from a ::close() call in client code (it's no virtual and not invoked as slot) > In the opposite, close event or aboutToClose do mean closing > and quitting, but don't imply any data interactions (as it's too late) Errr, no. Please read the Qt API docs. You simply ::ignore() the close event and nothing is gonna be closed or changed. That's why it's massively intercepted to ask users to save stuff - what's also explicitly suggested in the API docs. And that's why somebody considered it a good idea to explicitly close windows on session end, what it's just not. That "somebody" actually wanted to trigger and check the result of the event, but not really close windows. And that's what I'm proposing to deal with the situation. The justification for QGuiApplication::commitDataRequest() though is, that a QGuiApplication doesn't necessarily have any windows at all and still wants to save stuff on logout (and of course before the SIGTERM) = Completely untested patch (not even a build attempt) for Qt 5.6:
[Touch-packages] [Bug 1446865]
For a KMainWindow solution, one should not require a nasty global eventfilter on the application - handling KMainWindow::closeEvent() should be sufficient, but there might be an additional pitfall on modal windows (ie. if there's already a save dialog, we might have to forcefully activate that to cause user interaction) However, as long as QGuiApplication cancels the session lougout as long as any close event is ignored, this cannot be applied either (ie. still requires your new patch to Qt) and, of course, this doesn't provide a solution for Qt5 either - session management on Qt5 will remain broken forever and just some KDE applications work around that. That's a pretty crappy situation :-( -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
> 5. I completely don't like the proposed way to preserve the compatibility > with (4) and make > the use case of broken session management client implementation legal and > default, but > also try to allow proper-written apps to still survive somehow, adding some > strange > workarounds to Qt as closing all the windows, but not too much, or API > properties to enable > proper processing of SM messages. No ofense, but what you "like" is completely irrelevant. You propose to intentionally break clients by library changes in some minor update, to teach developers to do right, but while you might aim their face, you're gonna hit the users (and probably yours) We had that (I kindly remind of the qDeleteAll fix ...) and it cooked up hell. commitDataRequest hardly shows up in lxr.kde.org, what means it's probably not used at all and aboutToQuit (which isn't used but could come to rescue) isn't used too much either. The BY FAR! omnipresent pattern is to listen to queryClose() which is called/emitted on -guess what- close events from KMainWindow. And that's for pretty much sure why the (wrong) behavior in QSessionManager exists. Is this behavior correct? No. Does this matter? NO! It's ok to spam a #warning that this behavior is shit and deprecate and kill it for Qt6 and we might even bail out (aka "fix") KMainWindow applications NOW by invoking queryClose() on QGuiApplicationPrivate::commitData() but regardless, we MUST assume this to be a global default pattern that applications (also beyond KDE) rely on (also because it's absolutely natural to intercept closing to save data and not think of closing on session end could be something entirely different - actually the illegal behavior happens to be the most sane one...) Now, *actually* closing windows to test interaction on session end is of course just as wrong - if the user cancels the logout by such incident, we should not have closed random other windows before (letting alone that it causes this but) - therefore I frankly do not understand what's so complicated about just faking a close event to serve the present "save your stuff" pattern in a majority in clients without causing the destructive close itself which may not only be a bit premature, but also triggers this bug. It's the least invasive solution that does not require everyone to signal "yes, i can sessionmanagement" (what's not gonna happen) and we don't risk loosing the users data (or breaking the ability to cancel the logout) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: Confirmed Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
(In reply to Andreas Hartmetz from comment #18) > How should that be done, sending close events and expecting applications to > save their state in response, but not close windows or the application? QCloseEvent ce; QApplication::sendEvent(window, ); You only want to emit the event, the widget doesn't close in response - the event is (usually) emitted when it wants to close. > It would mean that applications are session management aware No, it means they give a shit about "session management", but they do care about what happens when the user (or anything) tries to close a window. The present code in Qt's SM tells me that this is considered the predominant way to handle data-safety - also because it's the regular incident. Notice again that this data protection mechanism has *nothing* to do with session management in particular, eg. whenever you try to close a kwrite window w/ modified text, it will ask you "err, really? maybe safe the file before?" - and at this point the user can also say "whooops, no - I didn't want to close at all" The present code triggers this mechanism and it might be required to preserve that. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Confirmed Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: New Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
The typical fail will be the "there are 5 tabs open, close/cancel" dialogs. Afaiu this was added because of some MS Windows behavior and even if not, one has to assume that clients simply rely on window "save your work first!" protection to be in place and not somewhen been killed by the SM (what will happen when the SM got an "ok" and then tries to close windows or sigterm the process, would it not?) Large behavioral changes could be denied itr, sending out close events should bail you out ;-) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Won't Fix Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: New Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Yes, my concern is that status quo for several/many applications is that they do no connect to saveStateRequest() or commitDataRequest() and *only* perform interaction on window close events (since this is the regular case *during* the session) Stripping this mechanism will cause a behavioral change that is prone to cause data loss on session exit - thus such change may be denied upstream. If so, the status quo can be restored by sending close events w/o causing a) the actual loss of windows in the running session b) the application to "accidentally" quit early I don't discuss "what should be", but "what mess have we caused and how do we get around that" ;-) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Won't Fix Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: New Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
Andreas, the Qt patch kills the ability to cancel the logout process (when the process or user prevents closing a window), I'm not sure it will be accepted and if, you probably will have caused a feature breakage. See comment #8. Instead of actually closing, the system likely wants to ask whether anyone is ok with closing this window (ie. cause close events w/o actually closing the window) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Won't Fix Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: New Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1446865]
KWin is not responsible for restarting applications. This bug was *only* about not restoring window manager attributes (position, virtual desktop, etc.) on session restorage. There're fundamental bugs in Qt5 that prevent (both, correct and entire) restoring of Qt5 applications, see * https://codereview.qt-project.org/#/c/113806/ * https://codereview.qt-project.org/#/c/113901/ * http://marc.info/?l=kde-core-devel=144832700109449=1 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to qtbase-opensource-src in Ubuntu. https://bugs.launchpad.net/bugs/1446865 Title: KDE5/Qt5 does not support session restoration Status in KDE Base Workspace: Fix Released Status in Qt: New Status in plasma-workspace package in Ubuntu: Confirmed Status in qtbase-opensource-src package in Ubuntu: New Bug description: KDE5/Qt5 does not support proper session restoration. ProblemType: Bug DistroRelease: Ubuntu 15.10 To manage notifications about this bug go to: https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp