if (args && sizeof(args) < 127) {
return strdup(args);
}
-/* else {
- ERR("font scan failed, lets hope it doesn't mess stuff up");
- we'll assume this means to use the default font now, like $color
- }*/
return NULL;
}
int tmp = selected_font;
selected_font = s->font_added = addfont(args);
load_fonts();
- //set_font();
selected_font = tmp;
}
} else {
int tmp = selected_font;
selected_font = s->font_added = 0;
load_fonts();
- //set_font();
selected_font = tmp;
}
}
h += specials[special_index].arg;
}
else if (specials[special_index].type == FONT) {
- fontchange = specials[special_index].font_added;
+ fontchange = 1;
selected_font = specials[special_index].font_added;
h = font_height();
}
case FONT:
if (fontchange) {
+ int old = font_ascent();
cur_y -= font_ascent();
selected_font = specials[special_index].font_added;
- cur_y += font_ascent();
-#ifdef XFT
- if (!use_xft || use_xdbe)
-#endif
- {
- set_font();
+ if (cur_y + (font_ascent()) < old) {
+ cur_y = old;
+ } else {
+ cur_y += font_ascent();
}
+ set_font();
}
break;
case FG: