aboutsummaryrefslogtreecommitdiff
path: root/src/libdraw/init.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2015-02-17 12:16:20 -0500
committerRuss Cox <rsc@swtch.com>2015-02-17 20:51:23 +0000
commit213fc4f6fb26bb5781ea3e489bf4cc5c2aca591e (patch)
treef6a4f5bbb3244133a8b62b835176f09c9346cfe5 /src/libdraw/init.c
parent77f23268f7073b254e91748d4764768bab6d6f1f (diff)
downloadplan9port-213fc4f6fb26bb5781ea3e489bf4cc5c2aca591e.tar.gz
plan9port-213fc4f6fb26bb5781ea3e489bf4cc5c2aca591e.tar.bz2
plan9port-213fc4f6fb26bb5781ea3e489bf4cc5c2aca591e.zip
libdraw: autoscale fonts when moving between low and high dpi screens
Change-Id: I6093955b222db89dfe437fb723593b173d888d01 Reviewed-on: https://plan9port-review.googlesource.com/1170 Reviewed-by: Russ Cox <rsc@swtch.com>
Diffstat (limited to 'src/libdraw/init.c')
-rw-r--r--src/libdraw/init.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libdraw/init.c b/src/libdraw/init.c
index b2df7fd7..452b6da7 100644
--- a/src/libdraw/init.c
+++ b/src/libdraw/init.c
@@ -199,6 +199,7 @@ int
getwindow(Display *d, int ref)
{
Image *i, *oi;
+ Font *f;
/* XXX check for destroyed? */
@@ -219,6 +220,17 @@ getwindow(Display *d, int ref)
_freeimage1(screen);
screen = _allocwindow(screen, _screen, i->r, ref, DWhite);
d->screenimage = screen;
+
+
+ if(d->dpi >= DefaultDPI*3/2) {
+ for(f=d->firstfont; f != nil; f=f->next)
+ loadhidpi(f);
+ } else {
+ for(f=d->firstfont; f != nil; f=f->next)
+ if(f->lodpi != nil && f->lodpi != f)
+ swapfont(f, &f->hidpi, &f->lodpi);
+ }
+
return 0;
}