>From 520fd43e3b5d65a3488bd5585c69fdf7293155f9 Mon Sep 17 00:00:00 2001
From: Tamas TEVESZ <[email protected]>
Date: Thu, 1 Apr 2010 03:26:30 +0200
Subject: [PATCH] Tidy comms between external apps and wm a bit

- one instance of this left in setstyle, it will follow later
---
 WPrefs.app/WPrefs.c |    5 +----
 src/event.c         |   17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/WPrefs.app/WPrefs.c b/WPrefs.app/WPrefs.c
index 328791d..231a3ef 100644
--- a/WPrefs.app/WPrefs.c
+++ b/WPrefs.app/WPrefs.c
@@ -116,7 +116,6 @@ static void save(WMWidget * w, void *data)
        WMPropList *p1, *p2;
        WMPropList *keyList;
        WMPropList *key;
-       char *msg = "Reconfigure";
        XEvent ev;
 
        /*    puts("gathering data"); */
@@ -157,10 +156,8 @@ static void save(WMWidget * w, void *data)
        ev.xclient.message_type = 
XInternAtom(WMScreenDisplay(WMWidgetScreen(w)), "_WINDOWMAKER_COMMAND", False);
        ev.xclient.window = 
DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w)));
        ev.xclient.format = 8;
+       strncpy(ev.xclient.data.b, "Reconfigure", sizeof(ev.xclient.data.b));
 
-       for (i = 0; i <= strlen(msg); i++) {
-               ev.xclient.data.b[i] = msg[i];
-       }
        XSendEvent(WMScreenDisplay(WMWidgetScreen(w)),
                   DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w))), 
False, SubstructureRedirectMask, &ev);
        XFlush(WMScreenDisplay(WMWidgetScreen(w)));
diff --git a/src/event.c b/src/event.c
index 633f58e..6f51a76 100644
--- a/src/event.c
+++ b/src/event.c
@@ -926,7 +926,22 @@ static void handleClientMessage(XEvent * event)
                }
        } else if (event->xclient.message_type == _XA_WINDOWMAKER_COMMAND) {
 
-               wDefaultsCheckDomains(NULL);
+               char *command;
+               size_t len;
+
+               len = sizeof(event->xclient.data.b) + 1;
+               command = wmalloc(len);
+               memset(command, 0, len);
+               strncpy(command, event->xclient.data.b, 
sizeof(event->xclient.data.b));
+
+               if (strncmp(command, "Reconfigure", sizeof("Reconfigure")) == 
0) {
+                       wwarning(_("Got Reconfigure command"));
+                       wDefaultsCheckDomains(NULL);
+               } else {
+                       wwarning(_("Got unknown command %s"), command);
+               }
+
+               wfree(command);
 
        } else if (event->xclient.message_type == _XA_WINDOWMAKER_WM_FUNCTION) {
                WApplication *wapp;
-- 
1.7.0


-- 
[-]

mkdir /nonexistent
From 520fd43e3b5d65a3488bd5585c69fdf7293155f9 Mon Sep 17 00:00:00 2001
From: Tamas TEVESZ <[email protected]>
Date: Thu, 1 Apr 2010 03:26:30 +0200
Subject: [PATCH] Tidy comms between external apps and wm a bit

- one instance of this left in setstyle, it will follow later
---
 WPrefs.app/WPrefs.c |    5 +----
 src/event.c         |   17 ++++++++++++++++-
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/WPrefs.app/WPrefs.c b/WPrefs.app/WPrefs.c
index 328791d..231a3ef 100644
--- a/WPrefs.app/WPrefs.c
+++ b/WPrefs.app/WPrefs.c
@@ -116,7 +116,6 @@ static void save(WMWidget * w, void *data)
 	WMPropList *p1, *p2;
 	WMPropList *keyList;
 	WMPropList *key;
-	char *msg = "Reconfigure";
 	XEvent ev;
 
 	/*    puts("gathering data"); */
@@ -157,10 +156,8 @@ static void save(WMWidget * w, void *data)
 	ev.xclient.message_type = XInternAtom(WMScreenDisplay(WMWidgetScreen(w)), "_WINDOWMAKER_COMMAND", False);
 	ev.xclient.window = DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w)));
 	ev.xclient.format = 8;
+	strncpy(ev.xclient.data.b, "Reconfigure", sizeof(ev.xclient.data.b));
 
-	for (i = 0; i <= strlen(msg); i++) {
-		ev.xclient.data.b[i] = msg[i];
-	}
 	XSendEvent(WMScreenDisplay(WMWidgetScreen(w)),
 		   DefaultRootWindow(WMScreenDisplay(WMWidgetScreen(w))), False, SubstructureRedirectMask, &ev);
 	XFlush(WMScreenDisplay(WMWidgetScreen(w)));
diff --git a/src/event.c b/src/event.c
index 633f58e..6f51a76 100644
--- a/src/event.c
+++ b/src/event.c
@@ -926,7 +926,22 @@ static void handleClientMessage(XEvent * event)
 		}
 	} else if (event->xclient.message_type == _XA_WINDOWMAKER_COMMAND) {
 
-		wDefaultsCheckDomains(NULL);
+		char *command;
+		size_t len;
+
+		len = sizeof(event->xclient.data.b) + 1;
+		command = wmalloc(len);
+		memset(command, 0, len);
+		strncpy(command, event->xclient.data.b, sizeof(event->xclient.data.b));
+
+		if (strncmp(command, "Reconfigure", sizeof("Reconfigure")) == 0) {
+			wwarning(_("Got Reconfigure command"));
+			wDefaultsCheckDomains(NULL);
+		} else {
+			wwarning(_("Got unknown command %s"), command);
+		}
+
+		wfree(command);
 
 	} else if (event->xclient.message_type == _XA_WINDOWMAKER_WM_FUNCTION) {
 		WApplication *wapp;
-- 
1.7.0

Reply via email to