]> git.sur5r.net Git - i3/i3/blobdiff - src/tree.c
Merge branch 'dont-match-placeholders'
[i3/i3] / src / tree.c
index 6e289790b80da317a137a9980f4c7c50482f6481..e99c5063b3b26ed5bb363874a8a5d6be35e291b2 100644 (file)
@@ -407,8 +407,7 @@ void tree_split(Con *con, orientation_t orientation) {
     Con *parent = con->parent;
 
     /* Force re-rendering to make the indicator border visible. */
-    FREE(con->deco_render_params);
-    FREE(parent->deco_render_params);
+    con_force_split_parents_redraw(con);
 
     /* if we are in a container whose parent contains only one
      * child (its split functionality is unused so far), we just change the
@@ -621,6 +620,14 @@ static bool _tree_next(Con *con, char way, orientation_t orientation, bool wrap)
         if (!next)
             return false;
 
+        /* Raise the floating window on top of other windows preserving
+         * relative stack order */
+        while (TAILQ_LAST(&(parent->floating_head), floating_head) != next) {
+            Con *last = TAILQ_LAST(&(parent->floating_head), floating_head);
+            TAILQ_REMOVE(&(parent->floating_head), last, floating_windows);
+            TAILQ_INSERT_HEAD(&(parent->floating_head), last, floating_windows);
+        }
+
         con_focus(con_descend_focused(next));
         return true;
     }