]> git.sur5r.net Git - i3/i3/commitdiff
Apply title_align to non-leaf containers 3541/head
authorOrestis Floros <orestisf1993@gmail.com>
Tue, 4 Dec 2018 18:50:32 +0000 (20:50 +0200)
committerOrestis Floros <orestisf1993@gmail.com>
Tue, 4 Dec 2018 18:50:32 +0000 (20:50 +0200)
Additionally, marks will now display for non-leaf containers.

Fixes #3540.

src/x.c

diff --git a/src/x.c b/src/x.c
index a8e493dd070ba9372abae701b29bf15747c9162f..82c19d3022b3e7ad68f64b72224b33dccc15e215 100644 (file)
--- a/src/x.c
+++ b/src/x.c
@@ -613,31 +613,6 @@ void x_draw_decoration(Con *con) {
     /* 6: draw the title */
     int text_offset_y = (con->deco_rect.height - config.font.height) / 2;
 
-    struct Window *win = con->window;
-    if (win == NULL) {
-        i3String *title;
-        if (con->title_format == NULL) {
-            char *_title;
-            char *tree = con_get_tree_representation(con);
-            sasprintf(&_title, "i3: %s", tree);
-            free(tree);
-
-            title = i3string_from_utf8(_title);
-            FREE(_title);
-        } else {
-            title = con_parse_title_format(con);
-        }
-
-        draw_util_text(title, &(parent->frame_buffer),
-                       p->color->text, p->color->background,
-                       con->deco_rect.x + logical_px(2),
-                       con->deco_rect.y + text_offset_y,
-                       con->deco_rect.width - 2 * logical_px(2));
-        I3STRING_FREE(title);
-
-        goto after_title;
-    }
-
     const int title_padding = logical_px(2);
     const int deco_width = (int)con->deco_rect.width;
     int mark_width = 0;
@@ -677,7 +652,23 @@ void x_draw_decoration(Con *con) {
         FREE(formatted_mark);
     }
 
-    i3String *title = con->title_format == NULL ? win->name : con_parse_title_format(con);
+    i3String *title = NULL;
+    struct Window *win = con->window;
+    if (win == NULL) {
+        if (con->title_format == NULL) {
+            char *_title;
+            char *tree = con_get_tree_representation(con);
+            sasprintf(&_title, "i3: %s", tree);
+            free(tree);
+
+            title = i3string_from_utf8(_title);
+            FREE(_title);
+        } else {
+            title = con_parse_title_format(con);
+        }
+    } else {
+        title = con->title_format == NULL ? win->name : con_parse_title_format(con);
+    }
     if (title == NULL) {
         goto copy_pixmaps;
     }
@@ -710,11 +701,10 @@ void x_draw_decoration(Con *con) {
                    con->deco_rect.y + text_offset_y,
                    deco_width - mark_width - 2 * title_padding);
 
-    if (con->title_format != NULL) {
+    if (win == NULL || con->title_format != NULL) {
         I3STRING_FREE(title);
     }
 
-after_title:
     x_draw_decoration_after_title(con, p);
 copy_pixmaps:
     draw_util_copy_surface(&(con->frame_buffer), &(con->frame), 0, 0, 0, 0, con->rect.width, con->rect.height);