]> git.sur5r.net Git - i3/i3/commitdiff
refactor, name changes
authorFrancesco Mazzoli <f@mazzo.li>
Sat, 3 Nov 2012 11:17:31 +0000 (11:17 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 13 Nov 2012 08:40:06 +0000 (09:40 +0100)
We need to send the workspace event earlier, because otherwise 'old'
might already be destroyed (if it was empty).

src/workspace.c

index fbd68dba0561eef72d5bdbec7f5250418540045d..e277f0720c51dff330057d61da8ff4147d22c336 100644 (file)
@@ -338,7 +338,7 @@ static void workspace_defer_update_urgent_hint_cb(EV_P_ ev_timer *w, int revents
  * 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) {
     yajl_gen gen = ygenalloc();
 
     y(map_open);
@@ -440,6 +440,8 @@ 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
@@ -466,8 +468,6 @@ static void _workspace_show(Con *workspace) {
 
     /* Update the EWMH hints */
     ewmh_update_current_desktop();
-
-    _workspace_focus_event(workspace, current);
 }
 
 /*