X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fslidescreen.c;h=c5656f32c867bc9b20df146b1dc16698fb6deded;hb=c85f503f5793839a6be4c818332aca4a96927bb2;hp=313f0eecff0ad5bce43621e379bf91e9095caf62;hpb=aa75c7476aeaa84cf3abc192b376a8b03c325213;p=xscreensaver diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c index 313f0eec..c5656f32 100644 --- a/hacks/slidescreen.c +++ b/hacks/slidescreen.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2014 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2018 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -66,6 +66,9 @@ slidescreen_init (Display *dpy, Window window) st->grid_size = get_integer_resource (st->dpy, "gridSize", "Integer"); st->pix_inc = get_integer_resource (st->dpy, "pixelIncrement", "Integer"); + if (xgwa.width > 2560) st->grid_size *= 2; /* Retina displays */ + + /* Don't let the grid be smaller than 5x5 */ while (st->grid_size > xgwa.width / 5) st->grid_size /= 2; @@ -198,6 +201,18 @@ draw_grid (struct state *st) st->bitmap_w = xgwa.width; st->bitmap_h = xgwa.height; + if (xgwa.width < 50 || xgwa.height < 50) /* tiny window */ + { + int s = (xgwa.width < xgwa.height ? xgwa.width : xgwa.height); + border = 1; + st->grid_size = s / 2; + if (st->grid_size < 16) st->grid_size = 16; + if (st->bitmap_w < st->grid_size*2) st->bitmap_w = st->grid_size*2; + if (st->bitmap_h < st->grid_size*2) st->bitmap_h = st->grid_size*2; + } + + if (xgwa.width > 2560) border *= 2; /* Retina displays */ + st->grid_w = st->bitmap_w / st->grid_size; st->grid_h = st->bitmap_h / st->grid_size; st->hole_x = random () % st->grid_w;