|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|