]> 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)

1  2 
libi3/font.c

diff --combined libi3/font.c
index cb92d52fbd29bc8281cb9beabcc269f2c5fca93b,b6d9d42e696d4a8e34865b13e970cc68aea3ccfb..847bc61beb30c2d474ef4ee5c96639305f4e91e3
@@@ -126,7 -126,10 +126,10 @@@ static void draw_text_pango(const char 
      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 */
@@@ -455,7 -458,7 +458,7 @@@ static int xcb_query_text_width(const x
                                                                           cookie, &error);
      if (reply == NULL) {
          /* We return a safe estimate because a rendering error is better than
 -         * a crash. Plus, the user will see the error in his log. */
 +         * a crash. Plus, the user will see the error in their log. */
          fprintf(stderr, "Could not get text extents (X error code %d)\n",
                  error->error_code);
          return savedFont->specific.xcb.info->max_bounds.character_width * text_len;