* For the "focus" event we send, along the usual "change" field, also the
* current and previous workspace, in "current" and "old" respectively.
*/
-static void _workspace_focus_event(Con *current, Con *old) {
+static void ipc_send_workspace_focus_event(Con *current, Con *old) {
+ setlocale(LC_NUMERIC, "C");
yajl_gen gen = ygenalloc();
y(map_open);
dump_node(gen, current, false);
ystr("old");
- dump_node(gen, old, false);
+ if (old == NULL)
+ y(null);
+ else
+ dump_node(gen, old, false);
y(map_close);
ipc_send_event("workspace", I3_IPC_EVENT_WORKSPACE, (const char *)payload);
y(free);
+ setlocale(LC_NUMERIC, "");
}
static void _workspace_show(Con *workspace) {
} else
con_focus(next);
+ ipc_send_workspace_focus_event(workspace, old);
+
DLOG("old = %p / %s\n", old, (old ? old->name : "(null)"));
/* Close old workspace if necessary. This must be done *after* doing
* urgency handling, because tree_close() will do a con_focus() on the next
/* Update the EWMH hints */
ewmh_update_current_desktop();
-
- _workspace_focus_event(workspace, current);
}
/*