From f459a5088528ecd0a19716ce5a4432c8a86a994a Mon Sep 17 00:00:00 2001 From: Federico Angelilli Date: Sat, 10 Feb 2024 23:32:31 +0100 Subject: Update dwm code --- src/dwm.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'src/dwm.c') 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]); -- cgit v1.2.3