diff --git a/docs/ipc b/docs/ipc index ae833c9f..ff60dbd1 100644 --- a/docs/ipc +++ b/docs/ipc @@ -646,7 +646,9 @@ This event consists of a single serialized map containing a property +change (string)+ which indicates the type of the change ("focus", "init", "empty", "urgent"). Additionally, when the change is "focus", an +old (object)+ and a +current (object)+ properties will be present with the -previous and current workspace respectively. +previous and current workspace respectively. When the first switch +occurs (when i3 focuses the workspace visible at the beginning) there is +no previous workspace, and the +old+ property will be set to +null+. *Example:* --------------------- diff --git a/src/workspace.c b/src/workspace.c index d4354898..fbd68dba 100644 --- a/src/workspace.c +++ b/src/workspace.c @@ -350,7 +350,10 @@ static void _workspace_focus_event(Con *current, Con *old) { 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);