http://www.jwz.org/xscreensaver/xscreensaver-5.13.tar.gz
[xscreensaver] / hacks / screenhack.c
index f90289d1edbc929fefe5440f0c5289aa35050627..d0c8be829d3b3110794c5c25df3f63a8572479cd 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2011 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -157,6 +157,7 @@ static char *default_defaults[] = {
   "*mono:              false",
   "*installColormap:   false",
   "*doFPS:             false",
+  "*multiSample:       false",
   "*visualID:          default",
   "*windowID:          ",
   "*desktopGrabber:    xscreensaver-getimage %s",
@@ -221,6 +222,8 @@ merge_options (void)
          strcat (newr, oldr);
          *s = newr;
        }
+      else
+        *s = strdup (*s);
   }
 }
 
@@ -442,7 +445,7 @@ screenhack_table_handle_events (Display *dpy,
             ft->reshape_cb (dpy, window, closure,
                             event.xconfigure.width, event.xconfigure.height);
 #ifdef DEBUG_PAIR
-          if (event.xany.window == window2)
+          if (window2 && event.xany.window == window2)
             ft->reshape_cb (dpy, window2, closure2,
                             event.xconfigure.width, event.xconfigure.height);
 #endif
@@ -451,7 +454,7 @@ screenhack_table_handle_events (Display *dpy,
                (! (event.xany.window == window
                    ? ft->event_cb (dpy, window, closure, &event)
 #ifdef DEBUG_PAIR
-                   : event.xany.window == window2
+                   : (window2 && event.xany.window == window2)
                    ? ft->event_cb (dpy, window2, closure2, &event)
 #endif
                    : 0)))
@@ -806,6 +809,12 @@ main (int argc, char **argv)
       exit (help_p ? 0 : 1);
     }
 
+  {
+    char **s;
+    for (s = merged_defaults; *s; s++)
+      free(*s);
+  }
+
   free (merged_options);
   free (merged_defaults);
   merged_options = 0;