* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2013 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009 Michael Stapelberg and contributors (see also: LICENSE)
*
*/
#include <assert.h>
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 */
}
}
+/*
+ * Returns true if and only if the current font is a pango font.
+ *
+ */
+bool font_is_pango(void) {
+#if PANGO_SUPPORT
+ return savedFont->type == FONT_TYPE_PANGO;
+#else
+ return false;
+#endif
+}
+
static int predict_text_width_xcb(const xcb_char2b_t *text, size_t text_len);
static void draw_text_xcb(const xcb_char2b_t *text, size_t text_len, xcb_drawable_t drawable,
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;