From http://www.jwz.org/xscreensaver/xscreensaver-5.38.tar.gz
[xscreensaver] / hacks / compass.c
index 415e7c0a499d2e69a6075386d9651d3ecc4a94d9..9d62870f6d163be6a6107a588f43930ee97019b8 100644 (file)
@@ -822,13 +822,17 @@ compass_init (Display *dpy, Window window)
   st->delay = get_integer_resource (st->dpy, "delay", "Integer");
   st->dbuf = get_boolean_resource (st->dpy, "doubleBuffer", "Boolean");
 
-# ifdef HAVE_COCOA     /* Don't second-guess Quartz's double-buffering */
+# ifdef HAVE_JWXYZ     /* Don't second-guess Quartz's double-buffering */
   st->dbuf = False;
 # endif
 
   XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
   st->size2 = MIN(st->xgwa.width, st->xgwa.height);
 
+  if (st->xgwa.width > st->xgwa.height * 5 ||  /* goofy aspect ratio */
+      st->xgwa.height > st->xgwa.width * 5)
+    st->size2 = MAX(st->xgwa.width, st->xgwa.height);
+
   if (st->size2 > 600) st->size2 = 600;
 
   st->size = (st->size2 / 2) * 0.8;