[Xfce-bugs] [Bug 5379] xfce session can't properly handle 2+ applications with interactive session save

bugzilla-daemon at xfce.org bugzilla-daemon at xfce.org
Mon Jul 30 22:43:04 CEST 2012


https://bugzilla.xfce.org/show_bug.cgi?id=5379

--- Comment #16 from Chris Bainbridge <chris.bainbridge at gmail.com> ---
> Shoudn't it send a SmSaveGlobal, so they can ask the user for any unsaved work?

I don't know - what do other desktops do?
https://live.gnome.org/SessionManagement/NotesOnXSMP under section
"SaveYourselfRequest (p. 6)" seems to echo your complaint: 

"Session managers generally don't let the client decide whether or not to save
the session when calling SaveYourselfRequest; they use a combination of
preferences/settings and logout-dialog buttons to decide. In theory then, the
session manager should just ignore the passed-in save-type, and set the
save-type of the SaveYourself messages to SmSaveGlobal or SmSaveBoth depending
on whether it's just shutting down, or also saving the state. This is what
ksmserver does, but old-gnome-session and xfce-session are both buggy:

xfce-session only sends SaveYourselfs at all if the user chooses to save the
session (in which case it sends the SaveYourselfs with the requested
save-type); if the session is not being saved, it just skips over the
SaveYourself phase entirely and goes directly to Die. (Technically, that
violates the spec, although it violates it in a way that no client can detect,
so it doesn't really matter.)

if you pass SmSaveGlobal to xfce-session, and the user chooses to save their
state, then correctly-written clients will not save their state."

It looks like it would be possible to change the behaviour to match ksmserver
as described above, from a quick look I'd guess it calls
sm_save_yourself_request in sm-layer.c and then
xfsm_manager_save_yourself_global in xfsm-manager.c, you probably just need to
override save_type there and set it to SmSaveGlobal or SmSaveBoth just above
the "if (!shutdown || shutdown_save) { shutdown with save  } else { shutdown
without save }" code.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Xfce-bugs mailing list