xfce4-session: update to 4.10.0

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
This commit is contained in:
Andreas Müller
2012-09-16 17:44:54 +02:00
parent 38c7431203
commit db799a93e2
2 changed files with 28 additions and 47 deletions
@@ -1,56 +1,39 @@
From 64c0acb072057023870881f9fbac29ce08d357db Mon Sep 17 00:00:00 2001 From 9f3077be682355e1cd07e9a9463e76307292208c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> From: Dimitar Zhekov <hamster@mbox.contact.bg>
Date: Wed, 5 Sep 2012 20:14:09 +0200 Date: Thu, 30 Aug 2012 22:52:14 +0200
Subject: [PATCH] Don't loose xfwm4 when closing session with multiple windows Subject: [PATCH] Handle multiple interactive session save (bug #5379).
waiting for user input
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When closing a session with more than one window open and waiting for unsaved Additionnaly, we now use SmSaveGlobal on log out / shutdown without
data to be closed, at the next session xfwm4 was not started properly. session save which avoids data loss. Previously clients would not save
anything on log out without session save.
The bug(fix) could be reproduced by Based on original work by Chris Bainbridge (chris.bainbridge@gmail.com).
* opening gedit
* entering some text
* opening terminal
* closing session (no YNC-dialog / wait ~1min to close session)
* reopen session
Bugreport with this patch is found at [1] further discussion at [2].
Upstream-Status: Pending
[1] https://bugzilla.xfce.org/show_bug.cgi?id=5379
[2] http://mail.xfce.org/pipermail/xfce/2012-August/031174.html
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
--- ---
Upstream-status: applied
xfce4-session/xfsm-manager.c | 81 ++++++++++++++++++++++++----------------- xfce4-session/xfsm-manager.c | 81 ++++++++++++++++++++++++-----------------
1 files changed, 47 insertions(+), 34 deletions(-) 1 files changed, 47 insertions(+), 34 deletions(-)
diff --git a/xfce4-session/xfsm-manager.c b/xfce4-session/xfsm-manager.c diff --git a/xfce4-session/xfsm-manager.c b/xfce4-session/xfsm-manager.c
index 3078d6a..3cc4c89 100644 index bf6a446..35811c5 100644
--- a/xfce4-session/xfsm-manager.c --- a/xfce4-session/xfsm-manager.c
+++ b/xfce4-session/xfsm-manager.c +++ b/xfce4-session/xfsm-manager.c
@@ -96,6 +96,7 @@ struct _XfsmManager @@ -98,6 +98,7 @@ struct _XfsmManager
XfsmManagerState state; XfsmShutdownType shutdown_type;
XfsmShutdownType shutdown_type; XfsmShutdown *shutdown_helper;
+ gboolean save_session; + gboolean save_session;
gboolean session_chooser; gboolean session_chooser;
gchar *session_name; gchar *session_name;
@@ -225,6 +226,7 @@ xfsm_manager_init (XfsmManager *manager) @@ -230,6 +231,7 @@ xfsm_manager_init (XfsmManager *manager)
manager->session_chooser = FALSE;
manager->failsafe_mode = TRUE; manager->failsafe_mode = TRUE;
manager->shutdown_type = XFSM_SHUTDOWN_LOGOUT; manager->shutdown_type = XFSM_SHUTDOWN_LOGOUT;
manager->shutdown_helper = xfsm_shutdown_get ();
+ manager->save_session = TRUE; + manager->save_session = TRUE;
manager->pending_properties = g_queue_new (); manager->pending_properties = g_queue_new ();
manager->starting_properties = g_queue_new (); manager->starting_properties = g_queue_new ();
@@ -981,7 +983,9 @@ xfsm_manager_interact (XfsmManager *manager, @@ -989,7 +991,9 @@ xfsm_manager_interact (XfsmManager *manager,
XfsmClient *cl = lp->data; XfsmClient *cl = lp->data;
if (xfsm_client_get_state (cl) == XFSM_CLIENT_INTERACTING) if (xfsm_client_get_state (cl) == XFSM_CLIENT_INTERACTING)
{ {
@@ -61,9 +44,9 @@ index 3078d6a..3cc4c89 100644
return; return;
} }
} }
@@ -1158,44 +1162,47 @@ xfsm_manager_save_yourself_global (XfsmManager *manager, @@ -1138,44 +1142,47 @@ xfsm_manager_save_yourself_global (XfsmManager *manager,
}
} }
#endif
- if (!shutdown || shutdown_save) - if (!shutdown || shutdown_save)
+ /* don't save the session if shutting down without save */ + /* don't save the session if shutting down without save */
@@ -140,7 +123,7 @@ index 3078d6a..3cc4c89 100644
} }
} }
@@ -1267,7 +1274,12 @@ xfsm_manager_save_yourself_done (XfsmManager *manager, @@ -1249,7 +1256,12 @@ xfsm_manager_save_yourself_done (XfsmManager *manager,
XfsmClient *client, XfsmClient *client,
gboolean success) gboolean success)
{ {
@@ -154,7 +137,7 @@ index 3078d6a..3cc4c89 100644
{ {
xfsm_verbose ("Client Id = %s send SAVE YOURSELF DONE, while not being " xfsm_verbose ("Client Id = %s send SAVE YOURSELF DONE, while not being "
"in save mode. Prepare to be nuked!\n", "in save mode. Prepare to be nuked!\n",
@@ -1539,7 +1551,8 @@ xfsm_manager_complete_saveyourself (XfsmManager *manager) @@ -1521,7 +1533,8 @@ xfsm_manager_complete_saveyourself (XfsmManager *manager)
xfsm_verbose ("Manager finished SAVE YOURSELF, session data will be stored now.\n\n"); xfsm_verbose ("Manager finished SAVE YOURSELF, session data will be stored now.\n\n");
/* all clients done, store session data */ /* all clients done, store session data */
@@ -165,5 +148,5 @@ index 3078d6a..3cc4c89 100644
if (manager->state == XFSM_MANAGER_CHECKPOINT) if (manager->state == XFSM_MANAGER_CHECKPOINT)
{ {
-- --
1.7.6.5 1.7.4.4
@@ -2,13 +2,14 @@ DESCRIPTION = "xfce4-session is a session manager for Xfce 4 Desktop Environment
SECTION = "x11" SECTION = "x11"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88" LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf xfce4-panel gconf gnome-keyring" DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf gnome-keyring"
RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth consolekit" RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth consolekit upower"
PR = "r2"
inherit xfce inherit xfce
SRC_URI += "file://0001-Don-t-loose-xfwm4-when-closing-session-with-multiple.patch" SRC_URI[md5sum] = "4768e1a41a0287af6aad18b329a0f230"
SRC_URI[sha256sum] = "bb8aa9a74c3d382840596fb4875144d66c7f3f47c8e9ee81d31e3428a72c46ce"
SRC_URI += "file://0001-Handle-multiple-interactive-session-save-bug-5379.patch"
# protect from frightening message that xfce might not work correctly # protect from frightening message that xfce might not work correctly
pkg_postinst_${PN} () { pkg_postinst_${PN} () {
@@ -17,12 +18,9 @@ pkg_postinst_${PN} () {
FILES_${PN} += "${libdir}/xfce4/*/*/*.so \ FILES_${PN} += "${libdir}/xfce4/*/*/*.so \
${libdir}/xfce4/session/*-*-* \ ${libdir}/xfce4/session/*-*-* \
${datadir}/xfce4/*/* \ ${datadir}/xsessions \
${datadir}/themes/Default/balou/*" ${datadir}/themes/Default/balou/*"
FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug" FILES_${PN}-dbg += "${libdir}/xfce4/*/*/.debug"
FILES_${PN}-staticdev += "${libdir}/xfce4/*/*/*.*a" FILES_${PN}-staticdev += "${libdir}/xfce4/*/*/*.*a"
SRC_URI[md5sum] = "461cc38bbd37cab881adbdf943f9a402"
SRC_URI[sha256sum] = "f0801b8c0ffa7e5d41b29b8df281ac127adf467bf50e8ded8aebe5a02bd99338"