return (con != NULL && con->window != NULL && con->window->id != XCB_WINDOW_NONE && con_get_workspace(con) != NULL);
}
-/**
+/*
* Returns true if this node has regular or floating children.
*
*/
return fs;
}
-/**
+/*
* Returns true if the container is internal, such as __i3_scratch
*
*/
return children;
}
-/**
+/*
* Returns the number of visible non-floating children of this container.
* For example, if the container contains a hsplit which has two children,
* this will return 2 instead of 1.
Con *old_focus = focused;
con_activate(con_descend_focused(con));
- /* Restore focus if the output's focused workspace has changed. */
- if (con_get_workspace(focused) != old_focus_ws) {
- con_focus(old_focus);
- }
-
- /* Restore focus to the currently focused container. */
if (old_focus_ws == current_ws && old_focus->type != CT_WORKSPACE) {
+ /* Restore focus to the currently focused container. */
con_activate(old_focus);
+ } else if (con_get_workspace(focused) != old_focus_ws) {
+ /* Restore focus if the output's focused workspace has changed. */
+ con_focus(con_descend_focused(old_focus_ws));
}
}