GNOME Bugzilla – Bug 305871
The prototype session should be embedded in a Sabayon toplevel window
Last modified: 2007-09-19 19:52:17 UTC
1) Start Sabayon 2) Edit a profile 3) Close the edit window 4) No prompt appears and all edits disappear user should be prompted to save changes
Okay, the way we fix this I think is that we should create our own toplevel window and run Xnest -parent $(our_window_id) ... i.e. embed the Xnest window in our toplevel. If we do that, it might we worth re-considering the UI of the monitor window. Instead of having the monitor running inside the session, it could just be a pane underneath the embedded session. At the very least, the toplevel window needs to talk to the monitor window in order to do the save confirmation stuff.
First step is done: 2005-06-10 Mark McLoughlin <markmc@redhat.com> Embed Xnest in a window which we create. First step towards making the monitor window contain the prototype session rather than the other way around. * admin-tool/Makefile.am: add sessionwindow.py and remove sabayon-session. * lib/protosession.py: allow passing a parent window id which Xnest should embed itself in. * admin-tool/sessionwindow.py: add. Creates a toplevel window and embeds Xnest in it. * admin-tool/profilesdialog.py: open a SessionWindow rather than running sabayon-session * admin-tool/sabayon-session: remove. I don't think we've needed to run the protosession code from a separate process for quite a while now. The original problem was that we couldn't open an X connection with the Xnest server if we already had an open X connection, but we solved that with the open_x_connection() hack in protosession.py (I think) * lib/config.py.in: remove SESSION_TOOL_ARGV
Fixed on HEAD now: 2005-06-21 Mark McLoughlin <markmc@redhat.com> Move the monitoring window out into the session window itself. Things still look a bit funny; more work needed. Fixes "closing session window doesn't ask me if I want to save". Bug #305871 * admin-tool/sabayon-session: add this back again. The session window now runs as the sabayon user rather than as root. * admin-tool/Makefile.am: add sabayon-session * admin-tool/profilesdialog.py: run sabayon-session as the sabayon user. Need to setup the temporary homedir, copy/chown the xauth file and copy/chown the profile beforehand. * admin-tool/sabayon: check to see if the sabayon user exists and pop up an error if not. * admin-tool/sabayon.glade: re-name some widgets; pack the monitor output at the end of the vbox so we can stick the session widget in there. * admin-tool/sessionwindow.py: merge everything from monitorwindow.py in here and add a save confirmation dialog. * admin-tool/monitorwindow.py: remove. * lib/config.py.in: add SESSION_TOOL_ARGV and rename ADMIN_TOOL_TIMEOUT to XNEST_USR1_TIMEOUT. * lib/protosession.py: substantially re-work so as to split up the code into the stuff that needs to be run by sabayon as root and the stuff that gets run by sabayon-session as the sabayon user. * lib/dirmonitor.py, lib/storage.py: fix debug spew.