]> git.sur5r.net Git - i3/i3/commitdiff
Correctly render containers when a split container is focused
authorMichael Stapelberg <michael@stapelberg.de>
Fri, 26 Aug 2011 01:17:41 +0000 (03:17 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 26 Aug 2011 01:17:41 +0000 (03:17 +0200)
include/con.h
src/con.c
src/x.c

index d8bad7dea25df9964fce6d04bdc3372a87ed437d..93497404c3f93dd2b1cbf70f5f158c61970c0be7 100644 (file)
@@ -68,6 +68,12 @@ bool con_is_floating(Con *con);
  */
 Con *con_inside_floating(Con *con);
 
+/**
+ * Checks if the given container is inside a focused container.
+ *
+ */
+Con *con_inside_focused(Con *con);
+
 /**
  * Returns the container with the given client window ID or NULL if no such
  * container exists.
index a115ad7b80d58e457ebfa1a2ff92f940d56ec6a0..9cef302faa054f88b8e113d5e2a7d2b96a58f6ab 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -358,6 +358,18 @@ Con *con_inside_floating(Con *con) {
     return con_inside_floating(con->parent);
 }
 
+/*
+ * Checks if the given container is inside a focused container.
+ *
+ */
+Con *con_inside_focused(Con *con) {
+    if (con == focused)
+        return true;
+    if (!con->parent)
+        return false;
+    return con_inside_focused(con->parent);
+}
+
 /*
  * Returns the container with the given client window ID or NULL if no such
  * container exists.
diff --git a/src/x.c b/src/x.c
index abfcebef402b428eaf6a5c5ebef91497215a3225..f0307abf867d045e576d7f4f95af6eec81c83306 100644 (file)
--- a/src/x.c
+++ b/src/x.c
@@ -290,7 +290,7 @@ void x_draw_decoration(Con *con) {
     /* find out which colors to use */
     if (con->urgent)
         p->color = &config.client.urgent;
-    else if (con == focused)
+    else if (con == focused || con_inside_focused(con))
         p->color = &config.client.focused;
     else if (con == TAILQ_FIRST(&(parent->focus_head)))
         p->color = &config.client.focused_inactive;