mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-06 22:12:47 -05:00
Improve shadow bold mode: set the default shadow bold offset to +1
not -1 (it turns out _most_ X fonts prefer the former, though irritatingly my favourite real X font used to prefer the latter which was why I made the X version of my Font Of Choice do so too), and also clip to the boundaries of the rectangle we should be drawing text in. This still doesn't completely prevent display corruption in the case where text drawn in one sweep is partially overwritten in a future one, but gnome-terminal has this problem too, and now we've got the right default SB offset _and_ offer the opportunity to reconfigure it I think this is pretty good for now. [originally from svn r2184]
This commit is contained in:
16
unix/pterm.c
16
unix/pterm.c
@ -1398,7 +1398,7 @@ void do_text_internal(Context ctx, int x, int y, char *text, int len,
|
||||
struct gui_data *inst = dctx->inst;
|
||||
GdkGC *gc = dctx->gc;
|
||||
|
||||
int nfg, nbg, t, fontid, shadow;
|
||||
int nfg, nbg, t, fontid, shadow, rlen;
|
||||
|
||||
/*
|
||||
* NYI:
|
||||
@ -1435,13 +1435,25 @@ void do_text_internal(Context ctx, int x, int y, char *text, int len,
|
||||
return;
|
||||
if (x + len*2 > inst->term->cols)
|
||||
len = (inst->term->cols-x)/2; /* trim to LH half */
|
||||
rlen = len * 2;
|
||||
} else
|
||||
rlen = len;
|
||||
|
||||
{
|
||||
GdkRectangle r;
|
||||
|
||||
r.x = x*inst->font_width+cfg.window_border;
|
||||
r.y = y*inst->font_height+cfg.window_border;
|
||||
r.width = rlen*inst->font_width;
|
||||
r.height = inst->font_height;
|
||||
gdk_gc_set_clip_rectangle(gc, &r);
|
||||
}
|
||||
|
||||
gdk_gc_set_foreground(gc, &inst->cols[nbg]);
|
||||
gdk_draw_rectangle(inst->pixmap, gc, 1,
|
||||
x*inst->font_width+cfg.window_border,
|
||||
y*inst->font_height+cfg.window_border,
|
||||
len*inst->font_width, inst->font_height);
|
||||
rlen*inst->font_width, inst->font_height);
|
||||
|
||||
gdk_gc_set_foreground(gc, &inst->cols[nfg]);
|
||||
gdk_draw_text(inst->pixmap, inst->fonts[fontid], gc,
|
||||
|
Reference in New Issue
Block a user