]> git.sur5r.net Git - i3/i3/blobdiff - src/x.c
Update copyright notices and get rid of ranges
[i3/i3] / src / x.c
diff --git a/src/x.c b/src/x.c
index a3810942d27d7884c06fd1f6204a597e6ba48d16..7fe7044547b8d4d348ea73641c610f8bd4411658 100644 (file)
--- a/src/x.c
+++ b/src/x.c
@@ -4,7 +4,7 @@
  * vim:ts=4:sw=4:expandtab
  *
  * i3 - an improved dynamic tiling window manager
- * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
  *
  * x.c: Interface to X11, transfers our in-memory state to X11 (see also
  *      render.c). Basically a big state machine.
@@ -363,6 +363,7 @@ void x_draw_decoration(Con *con) {
         (con->window == NULL || !con->window->name_x_changed) &&
         !parent->pixmap_recreated &&
         !con->pixmap_recreated &&
+        !con->mark_changed &&
         memcmp(p, con->deco_render_params, sizeof(struct deco_render_params)) == 0) {
         free(p);
         goto copy_pixmaps;
@@ -381,6 +382,7 @@ void x_draw_decoration(Con *con) {
 
     parent->pixmap_recreated = false;
     con->pixmap_recreated = false;
+    con->mark_changed = false;
 
     /* 2: draw the client.background, but only for the parts around the client_rect */
     if (con->window != NULL) {
@@ -532,16 +534,16 @@ void x_draw_decoration(Con *con) {
     int indent_px = (indent_level * 5) * indent_mult;
 
     int mark_width = 0;
-    if (con->mark != NULL && (con->mark)[0] != '_') {
+    if (config.show_marks && con->mark != NULL && (con->mark)[0] != '_') {
         char *formatted_mark;
         sasprintf(&formatted_mark, "[%s]", con->mark);
         i3String *mark = i3string_from_utf8(formatted_mark);
         FREE(formatted_mark);
-        mark_width = predict_text_width(mark) + logical_px(2);
+        mark_width = predict_text_width(mark);
 
         draw_text(mark, parent->pixmap, parent->pm_gc,
-                  con->deco_rect.x + con->deco_rect.width - mark_width,
-                  con->deco_rect.y + text_offset_y, mark_width - logical_px(2));
+                  con->deco_rect.x + con->deco_rect.width - mark_width - logical_px(2),
+                  con->deco_rect.y + text_offset_y, mark_width);
 
         I3STRING_FREE(mark);
     }
@@ -549,7 +551,7 @@ void x_draw_decoration(Con *con) {
     draw_text(win->name,
               parent->pixmap, parent->pm_gc,
               con->deco_rect.x + logical_px(2) + indent_px, con->deco_rect.y + text_offset_y,
-              con->deco_rect.width - logical_px(2) - indent_px - mark_width);
+              con->deco_rect.width - logical_px(2) - indent_px - mark_width - logical_px(2));
 
 after_title:
     /* Since we don’t clip the text at all, it might in some cases be painted