Sophie

Sophie

distrib > Mageia > 9 > armv7hl > by-pkgid > 70db79aeb6f762d1452a58a64b648349 > files > 7

afterstep-2.2.12-22.mga9.src.rpm

From 5259089ec690e5e468a85dd5fc5146f04ce86a02 Mon Sep 17 00:00:00 2001
From: Sasha Vasko <sasha@aftercode.net>
Date: Sat, 23 Nov 2013 23:26:12 -0600
Subject: [PATCH 07/18] Added dbus message matches

---
 src/afterstep/dbus.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/afterstep/dbus.c b/src/afterstep/dbus.c
index 2e29fc47..b0efe7a9 100644
--- a/src/afterstep/dbus.c
+++ b/src/afterstep/dbus.c
@@ -254,6 +254,18 @@ static void toggle_watch(DBusWatch *w, void *data)
 /******************************************************************************/
 /* External interfaces : */
 /******************************************************************************/
+static _asdbus_add_match (DBusConnection *conn, const char* iface, const char* member) {
+	char match[256];
+	sprintf(match,	"type='signal',interface='%s',member='%s'", iface, member);
+    	DBusError error;
+    	dbus_error_init(&error);
+    	dbus_bus_add_match(conn, match, &error);
+    	if (dbus_error_is_set(&error)) {
+      		show_error("dbus_bus_add_match() %s failed: %s\n",   member, error.message);
+      		dbus_error_free(&error);
+	}
+}
+
 Bool asdbus_init ()
 {																/* return connection unix fd */
 	char *tmp;
@@ -262,7 +274,9 @@ Bool asdbus_init ()
 		if (!dbus_connection_set_watch_functions(ASDBus.session_conn, add_watch, remove_watch,  toggle_watch, ASDBus.session_conn, NULL)) {
 		 	show_error("dbus_connection_set_watch_functions() failed");
 		}
-
+		_asdbus_add_match (ASDBus.session_conn,  IFACE_SESSION_PRIVATE, "QueryEndSession");
+		_asdbus_add_match (ASDBus.session_conn,  IFACE_SESSION_PRIVATE, "EndSession");
+		_asdbus_add_match (ASDBus.session_conn,  IFACE_SESSION_PRIVATE, "Stop");
 	}
 
 	if (!ASDBus.system_conn){
-- 
2.22.0