[28336] in Source-Commits

home help back first fref pref prev next nref lref last post

xsession commit: handle QueryEndSession from the session manager

daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Wed Jul 9 11:59:52 2014

Date: Wed, 9 Jul 2014 11:59:45 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201407091559.s69FxjdP025472@drugstore.mit.edu>
To: source-commits@MIT.EDU

https://github.com/mit-athena/xsession/commit/919d704e93dccc02cc4f3fcef5e7931ad317729f
commit 919d704e93dccc02cc4f3fcef5e7931ad317729f
Author: Jonathan Reed <jdreed@mit.edu>
Date:   Wed Jul 9 11:57:55 2014 -0400

    handle QueryEndSession from the session manager
    
    If we register with the SM, we must connect to and respond to
    QueryEndSession, otherwise we are deemed unresponsive and the
    user is asked what to do.

 debian/changelog            |    7 +++++++
 debian/unity-logout-watcher |    7 +++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 2b991c2..a8cdc5e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+debathena-xsession (1.25.1) unstable; urgency=low
+
+  * unity-logout-watcher must respond to QueryEndSession, if it has
+    registered with the session manager.
+
+ -- Jonathan Reed <jdreed@mit.edu>  Wed, 09 Jul 2014 11:57:51 -0400
+
 debathena-xsession (1.25) unstable; urgency=low
 
   * Add unity-logout-watcher via an xdg-autostart file, which looks for
diff --git a/debian/unity-logout-watcher b/debian/unity-logout-watcher
index f833ccf..121e8c5 100755
--- a/debian/unity-logout-watcher
+++ b/debian/unity-logout-watcher
@@ -53,9 +53,16 @@ class Watcher:
     def init_sm_client(self):
         proxy = self.sessionBus.get_object(SM_DBUS_NAME, self.smClientId)
         self.smClient = dbus.Interface(proxy, SM_CLIENT_DBUS_INTERFACE)
+        self.smClient.connect_to_signal("QueryEndSession",
+                                        self.sm_on_QueryEndSession)
         self.smClient.connect_to_signal("EndSession", self.sm_on_EndSession)
         self.smClient.connect_to_signal("Stop", self.sm_on_Stop)
 
+   # Here on a QueryEndSession signal from the session manager.
+    def sm_on_QueryEndSession(self, flags):
+        # Response args: is_ok, reason.
+        self.smClient.EndSessionResponse(True, "")
+
     # Here on an EndSession signal from the session manager.
     def sm_on_EndSession(self, flags):
         unity_first_run_stamp()

home help back first fref pref prev next nref lref last post