aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dwm.c43
1 files changed, 27 insertions, 16 deletions
diff --git a/src/dwm.c b/src/dwm.c
index d856675..f323164 100644
--- a/src/dwm.c
+++ b/src/dwm.c
@@ -154,6 +154,8 @@ static void ipc_run_command(DwmIpc *dwm, const char *cmd, JsonNode **args)
g_free(msg);
}
+#define JSON_FIELD(reader, member) (json_reader_end_member(reader), json_reader_read_member(reader, member))
+
static void ipc_handle(DwmIpc *dwm, DwmIpcMessage type, char *reply, uint32_t reply_size)
{
GError *error = NULL;
@@ -173,9 +175,9 @@ static void ipc_handle(DwmIpc *dwm, DwmIpcMessage type, char *reply, uint32_t re
json_reader_read_member(reader, "new_state");
json_reader_read_member(reader, "selected");
long selected = json_reader_get_int_value(reader);
- json_reader_end_member (reader);
- json_reader_end_member (reader);
- json_reader_end_member (reader);
+ json_reader_end_member(reader);
+ json_reader_end_member(reader);
+ json_reader_end_member(reader);
log_debug("Selected tag mask: %ld", selected);
@@ -185,36 +187,40 @@ static void ipc_handle(DwmIpc *dwm, DwmIpcMessage type, char *reply, uint32_t re
state_redraw(dwm->state, false);
}
- } else if (json_reader_read_member(reader, IPC_EVENT_CLIENT_FOCUS_CHANGE)) {
- log_info("Ignoring dwm ipc event [event=%s]", IPC_EVENT_CLIENT_FOCUS_CHANGE);
+ } else if (JSON_FIELD(reader, IPC_EVENT_CLIENT_FOCUS_CHANGE)) {
+ log_debug("Ignoring dwm ipc event [event=%s]", IPC_EVENT_CLIENT_FOCUS_CHANGE);
// TODO
- } else if (json_reader_read_member(reader, IPC_EVENT_LAYOUT_CHANGE)) {
- log_info("Ignoring dwm ipc event [event=%s]", IPC_EVENT_LAYOUT_CHANGE);
+ } else if (JSON_FIELD(reader, IPC_EVENT_LAYOUT_CHANGE)) {
+ log_debug("Ignoring dwm ipc event [event=%s]", IPC_EVENT_LAYOUT_CHANGE);
// TODO
- } else if (json_reader_read_member(reader, IPC_EVENT_MONITOR_FOCUS_CHANGE)) {
- log_info("Ignoring dwm ipc event [event=%s]", IPC_EVENT_MONITOR_FOCUS_CHANGE);
+ } else if (JSON_FIELD(reader, IPC_EVENT_MONITOR_FOCUS_CHANGE)) {
+ log_debug("Ignoring dwm ipc event [event=%s]", IPC_EVENT_MONITOR_FOCUS_CHANGE);
// TODO
- } else if (json_reader_read_member(reader, IPC_EVENT_FOCUSED_TITLE_CHANGE)) {
- log_info("Ignoring dwm ipc event [event=%s]", IPC_EVENT_FOCUSED_TITLE_CHANGE);
+ } else if (JSON_FIELD(reader, IPC_EVENT_FOCUSED_TITLE_CHANGE)) {
+ log_debug("Ignoring dwm ipc event [event=%s]", IPC_EVENT_FOCUSED_TITLE_CHANGE);
// TODO
- } else if (json_reader_read_member(reader, IPC_EVENT_FOCUSED_STATE_CHANGE)) {
- log_info("Ignoring dwm ipc event [event=%s]", IPC_EVENT_FOCUSED_STATE_CHANGE);
+ } else if (JSON_FIELD(reader, IPC_EVENT_FOCUSED_STATE_CHANGE)) {
+ log_debug("Ignoring dwm ipc event [event=%s]", IPC_EVENT_FOCUSED_STATE_CHANGE);
// TODO
} else {
- log_warning("Unrecognized dwm ipc event");
+ const char *event = "?";
+ if (json_reader_read_element(reader, 0))
+ event = json_reader_get_string_value(reader);
+
+ log_warning("Unrecognized dwm ipc event: %s", event);
}
} else {
log_debug("Ignoring dwm ipc message [type=%d]", type);
//log_debug("%s", reply);
}
- g_object_unref (reader);
- g_object_unref (parser);
+ g_object_unref(reader);
+ g_object_unref(parser);
}
static gboolean socket_callback(GSocket *socket, GIOCondition condition, gpointer data)
@@ -285,6 +291,11 @@ DwmIpc *dwm_create(State *state, const char *socket)
const char *events[] = {
IPC_EVENT_TAG_CHANGE,
+ IPC_EVENT_CLIENT_FOCUS_CHANGE,
+ IPC_EVENT_LAYOUT_CHANGE,
+ IPC_EVENT_MONITOR_FOCUS_CHANGE,
+ IPC_EVENT_FOCUSED_TITLE_CHANGE,
+ IPC_EVENT_FOCUSED_STATE_CHANGE,
};
for (int i = 0; i < G_N_ELEMENTS(events); ++i)
ipc_subscribe(dwm, events[i]);