mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-03 04:22:47 -05:00
Support font fallback even when an X11 server-side font is selected,
by introducing a wrapper around an individual unifont which falls back to Pango (which already has built-in fallback) in the case where the selected font doesn't support the glyph in question. The wrapper itself is a (vestigial) subclass of unifont, to minimise disturbance at the call sites. [originally from svn r9293]
This commit is contained in:
@ -2745,8 +2745,8 @@ void setup_fonts_ucs(struct gui_data *inst)
|
||||
unifont_destroy(inst->fonts[3]);
|
||||
|
||||
fs = conf_get_fontspec(inst->conf, CONF_font);
|
||||
inst->fonts[0] = unifont_create(inst->area, fs->name, FALSE, FALSE,
|
||||
shadowboldoffset, shadowbold);
|
||||
inst->fonts[0] = multifont_create(inst->area, fs->name, FALSE, FALSE,
|
||||
shadowboldoffset, shadowbold);
|
||||
if (!inst->fonts[0]) {
|
||||
fprintf(stderr, "%s: unable to load font \"%s\"\n", appname,
|
||||
fs->name);
|
||||
@ -2757,8 +2757,8 @@ void setup_fonts_ucs(struct gui_data *inst)
|
||||
if (shadowbold || !fs->name[0]) {
|
||||
inst->fonts[1] = NULL;
|
||||
} else {
|
||||
inst->fonts[1] = unifont_create(inst->area, fs->name, FALSE, TRUE,
|
||||
shadowboldoffset, shadowbold);
|
||||
inst->fonts[1] = multifont_create(inst->area, fs->name, FALSE, TRUE,
|
||||
shadowboldoffset, shadowbold);
|
||||
if (!inst->fonts[1]) {
|
||||
fprintf(stderr, "%s: unable to load bold font \"%s\"\n", appname,
|
||||
fs->name);
|
||||
@ -2768,8 +2768,8 @@ void setup_fonts_ucs(struct gui_data *inst)
|
||||
|
||||
fs = conf_get_fontspec(inst->conf, CONF_widefont);
|
||||
if (fs->name[0]) {
|
||||
inst->fonts[2] = unifont_create(inst->area, fs->name, TRUE, FALSE,
|
||||
shadowboldoffset, shadowbold);
|
||||
inst->fonts[2] = multifont_create(inst->area, fs->name, TRUE, FALSE,
|
||||
shadowboldoffset, shadowbold);
|
||||
if (!inst->fonts[2]) {
|
||||
fprintf(stderr, "%s: unable to load wide font \"%s\"\n", appname,
|
||||
fs->name);
|
||||
@ -2783,8 +2783,8 @@ void setup_fonts_ucs(struct gui_data *inst)
|
||||
if (shadowbold || !fs->name[0]) {
|
||||
inst->fonts[3] = NULL;
|
||||
} else {
|
||||
inst->fonts[3] = unifont_create(inst->area, fs->name, TRUE, TRUE,
|
||||
shadowboldoffset, shadowbold);
|
||||
inst->fonts[3] = multifont_create(inst->area, fs->name, TRUE, TRUE,
|
||||
shadowboldoffset, shadowbold);
|
||||
if (!inst->fonts[3]) {
|
||||
fprintf(stderr, "%s: unable to load wide bold font \"%s\"\n", appname,
|
||||
fs->name);
|
||||
|
Reference in New Issue
Block a user