>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 /nonexistentFrom 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