From 87a34eb82f92facda4b3ccf873fa4d0f681a0e81 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Mon, 12 Mar 2018 15:02:16 +0100 Subject: [PATCH] Allow setting absolute font sizes with absolute Ie, pixel size instead of point size. (I think). --- obrender/font.c | 5 ++++- openbox/config.c | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/obrender/font.c b/obrender/font.c index 47606aee..3c627926 100644 --- a/obrender/font.c +++ b/obrender/font.c @@ -113,7 +113,10 @@ RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size, pango_font_description_set_family(out->font_desc, name); pango_font_description_set_weight(out->font_desc, pweight); pango_font_description_set_style(out->font_desc, pstyle); - pango_font_description_set_size(out->font_desc, size * PANGO_SCALE); + if (size < 0) + pango_font_description_set_absolute_size(out->font_desc, -size * PANGO_SCALE); + else + pango_font_description_set_size(out->font_desc, size * PANGO_SCALE); /* setup the layout */ pango_layout_set_font_description(out->layout, out->font_desc); diff --git a/openbox/config.c b/openbox/config.c index 112f5d06..24abd5c1 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -771,7 +771,11 @@ static void parse_theme(xmlNodePtr node, gpointer d) } if ((fnode = obt_xml_find_node(n->children, "size"))) { int s = obt_xml_node_int(fnode); - if (s > 0) size = s; + if (s > 0) { + size = s; + if (obt_xml_attr_contains(fnode, "type", "absolute")) + size = -size; + } } if ((fnode = obt_xml_find_node(n->children, "weight"))) { gchar *w = obt_xml_node_string(fnode); -- 2.39.2