-
- /* get the data from the parsed xft string */
-
- /* get the family */
- if (FcPatternGetString(pat, "family", 0,
- (FcChar8**)&sval) == FcResultMatch)
- pango_font_description_set_family(out->font_desc, sval);
-
- /* get the weight */
- if (FcPatternGetInteger(pat, "weight", 0, &ival) == FcResultMatch) {
- if (ival == FC_WEIGHT_LIGHT)
- pango_font_description_set_weight(out->font_desc,
- PANGO_WEIGHT_LIGHT);
- else if (ival == FC_WEIGHT_DEMIBOLD)
- pango_font_description_set_weight(out->font_desc,
- PANGO_WEIGHT_SEMIBOLD);
- else if (ival == FC_WEIGHT_BOLD)
- pango_font_description_set_weight(out->font_desc,
- PANGO_WEIGHT_BOLD);
- else if (ival == FC_WEIGHT_BLACK)
- pango_font_description_set_weight(out->font_desc,
- PANGO_WEIGHT_ULTRABOLD);
+ out->shortcut_underline = pango_attr_underline_new(PANGO_UNDERLINE_LOW);
+ out->shortcut_underline->start_index = 0;
+ out->shortcut_underline->end_index = 0;
+
+ attrlist = pango_attr_list_new();
+ /* shortcut_underline is owned by the attrlist */
+ pango_attr_list_insert(attrlist, out->shortcut_underline);
+ /* the attributes are owned by the layout */
+ pango_layout_set_attributes(out->layout, attrlist);
+ pango_attr_list_unref(attrlist);
+
+ switch (weight) {
+ case RR_FONTWEIGHT_LIGHT: pweight = PANGO_WEIGHT_LIGHT; break;
+ case RR_FONTWEIGHT_NORMAL: pweight = PANGO_WEIGHT_NORMAL; break;
+ case RR_FONTWEIGHT_SEMIBOLD: pweight = PANGO_WEIGHT_SEMIBOLD; break;
+ case RR_FONTWEIGHT_BOLD: pweight = PANGO_WEIGHT_BOLD; break;
+ case RR_FONTWEIGHT_ULTRABOLD: pweight = PANGO_WEIGHT_ULTRABOLD; break;
+ default: g_assert_not_reached();