From 50b04884b65b7e04234e8fa794a4e6db48c133a4 Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Date: Mon, 21 Dec 2015 22:01:36 +0100 Subject: Trigger ipc_event_workspace in all cases This makes sure that the workspace IPC event is triggered when needed. Fixes #382 while making sure that the IPC event is only triggered once. --- sway/focus.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'sway/focus.c') diff --git a/sway/focus.c b/sway/focus.c index c1170ca4..cf0ee7f6 100644 --- a/sway/focus.c +++ b/sway/focus.c @@ -34,7 +34,7 @@ static void update_focus(swayc_t *c) { // Case where workspace changes case C_WORKSPACE: if (prev) { - ipc_event_workspace(prev, c); + ipc_event_workspace(prev, c, "focus"); // update visibility of old workspace update_visibility(prev); @@ -122,11 +122,6 @@ bool set_focused_container(swayc_t *c) { p = p->parent; p->is_focused = false; } - // active_ws might have been destroyed by now - // (focus swap away from empty ws = destroy ws) - if (active_ws_child_count == 0) { - active_ws = NULL; - } // get new focused view and set focus to it. p = get_focused_view(c); @@ -146,7 +141,13 @@ bool set_focused_container(swayc_t *c) { } if (active_ws != workspace) { - ipc_event_workspace(active_ws, workspace); + // active_ws might have been destroyed by now + // (focus swap away from empty ws = destroy ws) + if (active_ws_child_count == 0) { + active_ws = NULL; + } + + ipc_event_workspace(active_ws, workspace, "focus"); } return true; } -- cgit v1.2.3