From http://www.jwz.org/xscreensaver/xscreensaver-5.35.tar.gz
[xscreensaver] / hacks / imsmap.c
index aeee0308526344d65c48482e31d6450bfea1b0f4..1877243dcf00c2bce88dddb93a0fda7871f73fe1 100644 (file)
@@ -1,4 +1,4 @@
-/* imsmap, Copyright (c) 1992-2008 Juergen Nickelsen and Jamie Zawinski.
+/* imsmap, Copyright (c) 1992-2013 Juergen Nickelsen and Jamie Zawinski.
  * Derived from code by Markus Schirmer, TU Berlin.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -162,7 +162,7 @@ init_map (struct state *st)
   if (mono_p)
     st->flip_xy = 0;
   else if (st->colors)
-    free_colors (st->dpy, st->cmap, st->colors, st->ncolors);
+    free_colors (st->xgwa.screen, st->cmap, st->colors, st->ncolors);
   st->colors = 0;
 
   st->ncolors = get_integer_resource (st->dpy, "ncolors", "Integer");
@@ -186,9 +186,10 @@ init_map (struct state *st)
 
   if (!mono_p)
     {
+      if (st->ncolors < 1) st->ncolors = 1;
       st->colors = (XColor *) malloc (st->ncolors * sizeof(*st->colors));
 
-      make_smooth_colormap (st->dpy, st->xgwa.visual, st->cmap,
+      make_smooth_colormap (st->xgwa.screen, st->xgwa.visual, st->cmap,
                             st->colors, &st->ncolors,
                             True, 0, False);
       if (st->ncolors <= 2)
@@ -372,7 +373,7 @@ static Bool
 imsmap_event (Display *dpy, Window window, void *closure, XEvent *event)
 {
   struct state *st = (struct state *) closure;
-  if (event->xany.type == ButtonPress)
+  if (screenhack_event_helper (dpy, window, event))
     {
       init_map (st);
       return True;
@@ -401,6 +402,9 @@ static const char *imsmap_defaults [] = {
   "*iterations:        7",
   "*delay:     5",
   "*delay2:    20000",
+#ifdef HAVE_MOBILE
+  "*ignoreRotation: True",
+#endif
   0
 };