----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://svn.reviewboard.kde.org/r/5638/#review8254 -----------------------------------------------------------
Ship it! Looks ok. - Lubos On 2010-10-18 12:20:20, Chani Armitage wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://svn.reviewboard.kde.org/r/5638/ > ----------------------------------------------------------- > > (Updated 2010-10-18 12:20:20) > > > Review request for kwin, Plasma and Lubos Lunak. > > > Summary > ------- > > so, this is the activity session code. > it's not 100% complete, because kwin has to fake a few things until the > activities service gets its new api - but ivan's working on that. :) there > won't be any UI for it until that api's in anyways. > > kwin handles the mapping from activity id -> windows -> session ids, because > I had to call it anyways, and it's much easier to calculate from inside kwin. > > The good: > it can save and restore processes and their windows' activity associations > all the regular xsmp stuff seems to be working, except cancel. > I've done it by merely adding a few dbus methods, no changes to xsmp itself > ksmserver doesn't know or care what activities are; even the kwin code is > separated out into "find the clients for this activity" and "save a session > for these clients" > > The bad: > since ksmserver doesn't tell the wm or clients that anything special is > happening, it can't tell kwin "save the subsession data", or tell clients > "close only window foo". for kwin this is actually a nice excuse to have it > do the mapping work, but for clients it means we can't close anything until > we're ready to close everything. Clients would have to be made context-aware > either way to react to such a request; for 4.7 I might see if I can do it by > extending xsmp or augmenting it with more dbus (instead of having the client > do all the work after the session's closed, as I originally planned). > > kwrite's cancel button doesn't cancel the session-close. it works on logout, > so there must be a bug in my code. > > session data isn't deleted when an activity is deleted (I forgot). I'd like > to get this patch in ASAP though, and add simple details like that later - > the patch is already quite big enough ;) > > there's some "legacy" session code, I haven't read it all and I haven't > implemented support for it yet. are there any apps using it? does it matter? > what *is* this legacy session thing? > > The ugly: > there are some sync issues in here. > first of all, we have a conflict between save-on-close and save-regularly. > all xsmp stuff is save-on-close, whereas the activity service and plasma (and > other modern apps) save quite often. If you open an activity and then X > crashes, you've lost all session data for that activity. :( > > I'm planning to try fixing that by saving (but not quitting) the login > session when an activity is opened/closed. I'm not sure how well it'd work, > but it should at least keep the correct list of processes to start. > > the second sync issue comes from the fact that a window can be open on a > closed activity. I'll probably prevent the user from adding a window to a > closed activity, but windows that are already shared across activities... > well, they could behave in unexpected ways. I think I'd like to do more tests > before deciding how to handle that - but one thing that could help, perhaps, > is storing the kwin session info in one big pool for all closed activities > instead of a separate group for each activity. > > > Diffs > ----- > > trunk/KDE/kdebase/workspace/ksmserver/server.h 1186160 > trunk/KDE/kdebase/workspace/ksmserver/legacy.cpp 1186160 > trunk/KDE/kdebase/workspace/ksmserver/org.kde.KSMServerInterface.xml > 1186160 > trunk/KDE/kdebase/workspace/ksmserver/server.cpp 1186160 > trunk/KDE/kdebase/workspace/ksmserver/shutdown.cpp 1186160 > trunk/KDE/kdebase/workspace/ksmserver/startup.cpp 1186160 > trunk/KDE/kdebase/workspace/kwin/org.kde.KWin.xml 1186160 > trunk/KDE/kdebase/workspace/kwin/sm.cpp 1186160 > trunk/KDE/kdebase/workspace/kwin/workspace.h 1186160 > > Diff: http://svn.reviewboard.kde.org/r/5638/diff > > > Testing > ------- > > I can use dbus to save/restore an activity, like I showed in my screencast ( > http://chani.wordpress.com/2010/10/04/activities-fun-with-screencast ). I > haven't done much testing of multi-window processes, though, or saving and > restoring multiple activities. > > > Thanks, > > Chani > >
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel