From: Ingo Bürk Date: Wed, 16 Sep 2015 17:51:09 +0000 (+0200) Subject: Use the focused container to determine the target window_mode when using floating... X-Git-Tag: 4.11~15^2 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b490f679254f03d67fb8d9a6a80c9e93393bebea;p=i3%2Fi3 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 --- diff --git a/src/commands.c b/src/commands.c index 81896047..1472a812 100644 --- a/src/commands.c +++ b/src/commands.c @@ -1414,15 +1414,14 @@ void cmd_focus_window_mode(I3_CMD, char *window_mode) { DLOG("window_mode = %s\n", window_mode); Con *ws = con_get_workspace(focused); - Con *current; if (ws != NULL) { if (strcmp(window_mode, "mode_toggle") == 0) { - current = TAILQ_FIRST(&(ws->focus_head)); - if (current != NULL && current->type == CT_FLOATING_CON) + if (con_inside_floating(focused)) window_mode = "tiling"; else window_mode = "floating"; } + Con *current; TAILQ_FOREACH(current, &(ws->focus_head), focused) { if ((strcmp(window_mode, "floating") == 0 && current->type != CT_FLOATING_CON) || (strcmp(window_mode, "tiling") == 0 && current->type == CT_FLOATING_CON))