]> git.sur5r.net Git - i3/i3/commitdiff
Merge pull request #1549 from shdown/y-offset-fix
authorMichael Stapelberg <stapelberg@users.noreply.github.com>
Sat, 21 Mar 2015 15:32:19 +0000 (16:32 +0100)
committerMichael Stapelberg <stapelberg@users.noreply.github.com>
Sat, 21 Mar 2015 15:32:19 +0000 (16:32 +0100)
Fix incorrect y-offset for text in i3bar (2)

libi3/font.c

index cb92d52fbd29bc8281cb9beabcc269f2c5fca93b..847bc61beb30c2d474ef4ee5c96639305f4e91e3 100644 (file)
@@ -126,7 +126,10 @@ static void draw_text_pango(const char *text, size_t text_len,
     cairo_set_source_rgb(cr, pango_font_red, pango_font_green, pango_font_blue);
     pango_cairo_update_layout(cr, layout);
     pango_layout_get_pixel_size(layout, NULL, &height);
-    cairo_move_to(cr, x, y - 0.5 * (height - savedFont->height));
+    /* Center the piece of text vertically if its height is smaller than the
+     * cached font height, and just let "high" symbols fall out otherwise. */
+    int yoffset = (height < savedFont->height ? 0.5 : 1) * (height - savedFont->height);
+    cairo_move_to(cr, x, y - yoffset);
     pango_cairo_show_layout(cr, layout);
 
     /* Free resources */