|
|
@ -77,19 +77,21 @@ PangoLayout *get_pango_layout(cairo_t *cairo, const char *font,
|
|
|
|
if (markup) {
|
|
|
|
if (markup) {
|
|
|
|
char *buf;
|
|
|
|
char *buf;
|
|
|
|
GError *error = NULL;
|
|
|
|
GError *error = NULL;
|
|
|
|
bool result = pango_parse_markup(text, -1, 0, &attrs, &buf,
|
|
|
|
if (pango_parse_markup(text, -1, 0, &attrs, &buf, NULL, &error)) {
|
|
|
|
NULL, &error);
|
|
|
|
pango_layout_set_markup(layout, buf, -1);
|
|
|
|
if (result) {
|
|
|
|
free(buf);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
wlr_log(L_ERROR, "pango_parse_markup '%s' -> error %s", text,
|
|
|
|
wlr_log(L_ERROR, "pango_parse_markup '%s' -> error %s", text,
|
|
|
|
error->message);
|
|
|
|
error->message);
|
|
|
|
return NULL;
|
|
|
|
g_error_free(error);
|
|
|
|
|
|
|
|
markup = false; // fallback to plain text
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pango_layout_set_markup(layout, text, -1);
|
|
|
|
}
|
|
|
|
free(buf);
|
|
|
|
if (!markup) {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
attrs = pango_attr_list_new();
|
|
|
|
attrs = pango_attr_list_new();
|
|
|
|
pango_layout_set_text(layout, text, -1);
|
|
|
|
pango_layout_set_text(layout, text, -1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pango_attr_list_insert(attrs, pango_attr_scale_new(scale));
|
|
|
|
pango_attr_list_insert(attrs, pango_attr_scale_new(scale));
|
|
|
|
PangoFontDescription *desc = pango_font_description_from_string(font);
|
|
|
|
PangoFontDescription *desc = pango_font_description_from_string(font);
|
|
|
|
pango_layout_set_font_description(layout, desc);
|
|
|
|
pango_layout_set_font_description(layout, desc);
|
|
|
|