X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ffont.c;h=14b9ea14ae8636d3fcde20b286b13e4d5492d5ac;hb=78af5d15e9dd94959786811e9eddfa1e5024067c;hp=cb76767154a632f04d7c04da4c449d7b7177c70c;hpb=425dc318088b4c675cc0d7e6d75c6ff552cee448;p=chaz%2Fopenbox diff --git a/render/font.c b/render/font.c index cb767671..14b9ea14 100644 --- a/render/font.c +++ b/render/font.c @@ -1,6 +1,7 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- font.c for the Openbox window manager + Copyright (c) 2006 Mikael Magnusson Copyright (c) 2003 Ben Jansens Copyright (c) 2003 Derek Foreman @@ -28,7 +29,7 @@ #include #include #include -#if USE_PANGO && !ENABLE_NLS +#ifdef USE_PANGO #include #endif @@ -115,12 +116,12 @@ static RrFont *openfont(const RrInstance *inst, gchar *fontstring) if (FcPatternGetString(match, "style", 0, &tmp_string) != FcResultTypeMismatch) { /* Bold ? */ - if (!strcasecmp("bold", (gchar *)tmp_string)) { + if (!g_ascii_strcasecmp("bold", (gchar *)tmp_string)) { pango_font_description_set_weight(out->pango_font_description, PANGO_WEIGHT_BOLD); } /* Italic ? */ - else if (!strcasecmp("italic", (gchar *)tmp_string)) { + else if (!g_ascii_strcasecmp("italic", (gchar *)tmp_string)) { pango_font_description_set_style(out->pango_font_description, PANGO_STYLE_ITALIC); } @@ -129,26 +130,28 @@ static RrFont *openfont(const RrInstance *inst, gchar *fontstring) if (FcPatternGetInteger(match, "pixelsize", 0, &tmp_int) != FcResultTypeMismatch) { - /* TODO: is PANGO_SCALE correct ?? */ pango_font_description_set_absolute_size(out->pango_font_description, tmp_int*PANGO_SCALE); } /* based on gtkmain.c gtk_get_default_language() */ - PangoLanguage *ln; - gchar *locale, *p; - locale = g_strdup(setlocale(LC_CTYPE, NULL)); - if ((p = strchr(locale, '.'))) - *p = '\0'; - if ((p = strchr(locale, '@'))) - *p = '\0'; - PangoFontMetrics *metrics = - pango_context_get_metrics(context, out->pango_font_description, - ln = pango_language_from_string(locale)); - out->pango_ascent = pango_font_metrics_get_ascent(metrics); - out->pango_descent = pango_font_metrics_get_descent(metrics); - g_free(locale); - pango_font_metrics_unref(metrics); + { + gchar *locale, *p; + PangoFontMetrics *metrics; + + locale = g_strdup(setlocale(LC_CTYPE, NULL)); + if ((p = strchr(locale, '.'))) + *p = '\0'; + if ((p = strchr(locale, '@'))) + *p = '\0'; + metrics = + pango_context_get_metrics(context, out->pango_font_description, + pango_language_from_string(locale)); + out->pango_ascent = pango_font_metrics_get_ascent(metrics); + out->pango_descent = pango_font_metrics_get_descent(metrics); + g_free(locale); + pango_font_metrics_unref(metrics); + } #endif /* USE_PANGO */ if (FcPatternGetBool(match, OB_SHADOW, 0, &out->shadow) != FcResultMatch) @@ -204,12 +207,12 @@ RrFont *RrFontOpen(const RrInstance *inst, gchar *fontstring) void RrFontClose(RrFont *f) { if (f) { +#ifdef USE_PANGO + pango_font_description_free(f->pango_font_description); +#endif XftFontClose(RrDisplay(f->inst), f->xftfont); g_free(f); } -#ifdef USE_PANGO - pango_font_description_free(f->pango_font_description); -#endif } static void font_measure_full(const RrFont *f, const gchar *str, @@ -293,8 +296,9 @@ void RrFontDraw(XftDraw *d, RrTextureText *t, RrRect *area) gint x,y,w,h; XftColor c; GString *text; - gint mw, mh; + gint mw; #ifndef USE_PANGO + gint mh; size_t l; gboolean shortened = FALSE; #else