Allow focus w/ target when in fs in some cases.
If the target is in a different workspace, there's no reason why we wouldn't allow the user to focus it. We already allow this when focusing a workspace, for example.
This commit is contained in:
committed by
Michael Stapelberg
parent
687ad3b44e
commit
4eab046e8f
@ -1238,15 +1238,6 @@ void cmd_focus_level(I3_CMD, char *level) {
|
||||
*/
|
||||
void cmd_focus(I3_CMD) {
|
||||
DLOG("current_match = %p\n", current_match);
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE) {
|
||||
LOG("Cannot change focus while in fullscreen mode.\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
owindow *current;
|
||||
|
||||
if (match_is_empty(current_match)) {
|
||||
ELOG("You have to specify which window/container should be focused.\n");
|
||||
@ -1263,6 +1254,7 @@ void cmd_focus(I3_CMD) {
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
owindow *current;
|
||||
TAILQ_FOREACH(current, &owindows, owindows) {
|
||||
Con *ws = con_get_workspace(current->con);
|
||||
/* If no workspace could be found, this was a dock window.
|
||||
@ -1270,6 +1262,17 @@ void cmd_focus(I3_CMD) {
|
||||
if (!ws)
|
||||
continue;
|
||||
|
||||
/* Don't allow the focus switch if the focused and current
|
||||
* containers are in the same workspace. */
|
||||
if (focused &&
|
||||
focused->type != CT_WORKSPACE &&
|
||||
focused->fullscreen_mode != CF_NONE &&
|
||||
con_get_workspace(focused) == ws) {
|
||||
LOG("Cannot change focus while in fullscreen mode (same workspace).\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
/* If the container is not on the current workspace,
|
||||
* workspace_show() will switch to a different workspace and (if
|
||||
* enabled) trigger a mouse pointer warp to the currently focused
|
||||
|
Reference in New Issue
Block a user