Use the focused container to determine the target window_mode when using floating mode_toggle.
This fixes mode_toggle in case the workspace is focused and only a floating sticky window is open. fixes #1927
This commit is contained in:
parent
7de15b3815
commit
b490f67925
|
@ -1414,15 +1414,14 @@ void cmd_focus_window_mode(I3_CMD, char *window_mode) {
|
||||||
DLOG("window_mode = %s\n", window_mode);
|
DLOG("window_mode = %s\n", window_mode);
|
||||||
|
|
||||||
Con *ws = con_get_workspace(focused);
|
Con *ws = con_get_workspace(focused);
|
||||||
Con *current;
|
|
||||||
if (ws != NULL) {
|
if (ws != NULL) {
|
||||||
if (strcmp(window_mode, "mode_toggle") == 0) {
|
if (strcmp(window_mode, "mode_toggle") == 0) {
|
||||||
current = TAILQ_FIRST(&(ws->focus_head));
|
if (con_inside_floating(focused))
|
||||||
if (current != NULL && current->type == CT_FLOATING_CON)
|
|
||||||
window_mode = "tiling";
|
window_mode = "tiling";
|
||||||
else
|
else
|
||||||
window_mode = "floating";
|
window_mode = "floating";
|
||||||
}
|
}
|
||||||
|
Con *current;
|
||||||
TAILQ_FOREACH(current, &(ws->focus_head), focused) {
|
TAILQ_FOREACH(current, &(ws->focus_head), focused) {
|
||||||
if ((strcmp(window_mode, "floating") == 0 && current->type != CT_FLOATING_CON) ||
|
if ((strcmp(window_mode, "floating") == 0 && current->type != CT_FLOATING_CON) ||
|
||||||
(strcmp(window_mode, "tiling") == 0 && current->type == CT_FLOATING_CON))
|
(strcmp(window_mode, "tiling") == 0 && current->type == CT_FLOATING_CON))
|
||||||
|
|
Loading…
Reference in New Issue