80 columns
This commit is contained in:
parent
b1a1ad5d06
commit
b2cd881d31
1 changed files with 19 additions and 9 deletions
|
@ -55,7 +55,8 @@ static void font_startup(void)
|
||||||
|
|
||||||
#ifdef USE_PANGO
|
#ifdef USE_PANGO
|
||||||
g_type_init();
|
g_type_init();
|
||||||
/* these will never be freed, but we will need them until we shut down anyway */
|
/* these will never be freed, but we will need
|
||||||
|
* them until we shut down anyway */
|
||||||
context = pango_xft_get_context(RrDisplay(NULL), RrScreen(NULL));
|
context = pango_xft_get_context(RrDisplay(NULL), RrScreen(NULL));
|
||||||
#endif /* USE_PANGO */
|
#endif /* USE_PANGO */
|
||||||
/* Here we are teaching xft about the shadow, shadowoffset & shadowtint */
|
/* Here we are teaching xft about the shadow, shadowoffset & shadowtint */
|
||||||
|
@ -103,25 +104,32 @@ static RrFont *openfont(const RrInstance *inst, gchar *fontstring)
|
||||||
|
|
||||||
out->pango_font_description = pango_font_description_new();
|
out->pango_font_description = pango_font_description_new();
|
||||||
|
|
||||||
if (FcPatternGetString(match, "family", 0, &tmp_string) != FcResultTypeMismatch) {
|
if (FcPatternGetString(match, "family", 0, &tmp_string) !=
|
||||||
pango_font_description_set_family(out->pango_font_description, (gchar *)tmp_string);
|
FcResultTypeMismatch) {
|
||||||
|
pango_font_description_set_family(out->pango_font_description,
|
||||||
|
(gchar *)tmp_string);
|
||||||
tmp_string = NULL;
|
tmp_string = NULL;
|
||||||
}
|
}
|
||||||
if (FcPatternGetString(match, "style", 0, &tmp_string) != FcResultTypeMismatch) {
|
if (FcPatternGetString(match, "style", 0, &tmp_string) !=
|
||||||
|
FcResultTypeMismatch) {
|
||||||
/* Bold ? */
|
/* Bold ? */
|
||||||
if (!strcasecmp("bold", (gchar *)tmp_string)) {
|
if (!strcasecmp("bold", (gchar *)tmp_string)) {
|
||||||
pango_font_description_set_weight(out->pango_font_description, PANGO_WEIGHT_BOLD);
|
pango_font_description_set_weight(out->pango_font_description,
|
||||||
|
PANGO_WEIGHT_BOLD);
|
||||||
}
|
}
|
||||||
/* Italic ? */
|
/* Italic ? */
|
||||||
else if (!strcasecmp("italic", (gchar *)tmp_string)) {
|
else if (!strcasecmp("italic", (gchar *)tmp_string)) {
|
||||||
pango_font_description_set_style(out->pango_font_description, PANGO_STYLE_ITALIC);
|
pango_font_description_set_style(out->pango_font_description,
|
||||||
|
PANGO_STYLE_ITALIC);
|
||||||
}
|
}
|
||||||
tmp_string = NULL;
|
tmp_string = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FcPatternGetInteger(match, "pixelsize", 0, &tmp_int) != FcResultTypeMismatch) {
|
if (FcPatternGetInteger(match, "pixelsize", 0, &tmp_int) !=
|
||||||
|
FcResultTypeMismatch) {
|
||||||
/* TODO: is PANGO_SCALE correct ?? */
|
/* TODO: is PANGO_SCALE correct ?? */
|
||||||
pango_font_description_set_size(out->pango_font_description, tmp_int*PANGO_SCALE);
|
pango_font_description_set_size(out->pango_font_description,
|
||||||
|
tmp_int*PANGO_SCALE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* based on gtkmain.c gtk_get_default_language() */
|
/* based on gtkmain.c gtk_get_default_language() */
|
||||||
|
@ -133,7 +141,9 @@ static RrFont *openfont(const RrInstance *inst, gchar *fontstring)
|
||||||
if ((p = strchr(locale, '@')))
|
if ((p = strchr(locale, '@')))
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
printf("%s\n", locale);
|
printf("%s\n", locale);
|
||||||
PangoFontMetrics *metrics = pango_context_get_metrics(context, out->pango_font_description, ln = pango_language_from_string(locale));
|
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_ascent = pango_font_metrics_get_ascent(metrics);
|
||||||
out->pango_descent = pango_font_metrics_get_descent(metrics);
|
out->pango_descent = pango_font_metrics_get_descent(metrics);
|
||||||
g_free(locale);
|
g_free(locale);
|
||||||
|
|
Loading…
Reference in a new issue