-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/5638/
-----------------------------------------------------------

Review request for kwin and Plasma.


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

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