-----------------------------------------------------------
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

Reply via email to