Prevent workspace change during global fullscreen
While in global fullscreen, the workspace could be changed leaving the fullscreen container still visible on top but losing its focus.
This commit is contained in:
@ -958,6 +958,12 @@ void cmd_workspace(I3_CMD, char *which) {
|
||||
|
||||
DLOG("which=%s\n", which);
|
||||
|
||||
if (con_get_fullscreen_con(croot, CF_GLOBAL)) {
|
||||
LOG("Cannot switch workspace while in global fullscreen\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcmp(which, "next") == 0)
|
||||
ws = workspace_next();
|
||||
else if (strcmp(which, "prev") == 0)
|
||||
@ -986,6 +992,12 @@ void cmd_workspace(I3_CMD, char *which) {
|
||||
void cmd_workspace_number(I3_CMD, char *which) {
|
||||
Con *output, *workspace = NULL;
|
||||
|
||||
if (con_get_fullscreen_con(croot, CF_GLOBAL)) {
|
||||
LOG("Cannot switch workspace while in global fullscreen\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
long parsed_num = ws_name_to_number(which);
|
||||
|
||||
if (parsed_num == -1) {
|
||||
@ -1020,6 +1032,12 @@ void cmd_workspace_number(I3_CMD, char *which) {
|
||||
*
|
||||
*/
|
||||
void cmd_workspace_back_and_forth(I3_CMD) {
|
||||
if (con_get_fullscreen_con(croot, CF_GLOBAL)) {
|
||||
LOG("Cannot switch workspace while in global fullscreen\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
workspace_back_and_forth();
|
||||
|
||||
cmd_output->needs_tree_render = true;
|
||||
@ -1038,6 +1056,12 @@ void cmd_workspace_name(I3_CMD, char *name) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (con_get_fullscreen_con(croot, CF_GLOBAL)) {
|
||||
LOG("Cannot switch workspace while in global fullscreen\n");
|
||||
ysuccess(false);
|
||||
return;
|
||||
}
|
||||
|
||||
DLOG("should switch to workspace %s\n", name);
|
||||
if (maybe_back_and_forth(cmd_output, name))
|
||||
return;
|
||||
|
Reference in New Issue
Block a user