]> git.sur5r.net Git - i3/i3/commitdiff
Use the focused container to determine the target window_mode when using floating... 1928/head
authorIngo Bürk <ingo.buerk@tngtech.com>
Wed, 16 Sep 2015 17:51:09 +0000 (19:51 +0200)
committerIngo Bürk <ingo.buerk@tngtech.com>
Wed, 16 Sep 2015 17:52:08 +0000 (19:52 +0200)
This fixes mode_toggle in case the workspace is focused and only a floating sticky window is open.

fixes #1927

src/commands.c

index 8189604722745a37810b21deac63fc27b1003dd4..1472a812117fda78a43201c03781aec3a707a73b 100644 (file)
@@ -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))