all repos — openbox @ c4385c098fb5547dd80b06636c946676f274d396

openbox fork - make it a bit more like ryudo

use pango 1.16 stuff if its there. and use the old stuff if not. also! save it in static variable so we dont have to update it over and over.
Dana Jansens danakj@orodu.net
commit

c4385c098fb5547dd80b06636c946676f274d396

parent

fa67faf88c6e9c62dcbac838b6dc1c572ea9831a

2 files changed, 19 insertions(+), 3 deletions(-)

jump to
M configure.acconfigure.ac

@@ -74,7 +74,7 @@ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.6.0])

AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) -PKG_CHECK_MODULES(PANGO, [pango >= 1.16.0 pangoxft >= 1.8.0]) +PKG_CHECK_MODULES(PANGO, [pango >= 1.8.0 pangoxft >= 1.8.0]) AC_SUBST(PANGO_CFLAGS) AC_SUBST(PANGO_LIBS)
M render/font.crender/font.c

@@ -34,13 +34,29 @@

static void measure_font(const RrInstance *inst, RrFont *f) { PangoFontMetrics *metrics; + static PangoLanguage *lang = NULL; + + if (lang == NULL) { +#if PANGO_VERSION_CHECK(1,16,0) + lang = pango_language_get_default(); +#else + gchar *locale, *p; + /* get the default language from the locale + (based on gtk_get_default_language in gtkmain.c) */ + locale = g_strdup(setlocale(LC_CTYPE, NULL)); + if ((p = strchr(locale, '.'))) *p = '\0'; /* strip off the . */ + if ((p = strchr(locale, '@'))) *p = '\0'; /* strip off the @ */ + lang = pango_language_from_string(locale); + g_free(locale); +#endif + } /* measure the ascent and descent */ - metrics = pango_context_get_metrics(inst->pango, f->font_desc, - pango_language_get_default()); + metrics = pango_context_get_metrics(inst->pango, f->font_desc, lang); f->ascent = pango_font_metrics_get_ascent(metrics); f->descent = pango_font_metrics_get_descent(metrics); pango_font_metrics_unref(metrics); + } RrFont *RrFontOpen(const RrInstance *inst, const gchar *name, gint size,