X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fscreenhack.c;h=089e76b44b9dfed76537cd3ae1a52062c2e59cb6;hb=4ade52359b6eba3621566dac79793a33aa4c915f;hp=f90289d1edbc929fefe5440f0c5289aa35050627;hpb=c1b9b55ad8d59dc05ef55e316aebf5863e7dfa56;p=xscreensaver diff --git a/hacks/screenhack.c b/hacks/screenhack.c index f90289d1..089e76b4 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992-2008 Jamie Zawinski +/* xscreensaver, Copyright (c) 1992-2013 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 @@ -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))) @@ -507,7 +510,7 @@ usleep_and_process_events (Display *dpy, static void screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure) { - fps_compute (fpst, 0); + fps_compute (fpst, 0, -1); fps_draw (fpst); } @@ -572,7 +575,7 @@ run_screenhack_table (Display *dpy, #ifdef DEBUG_PAIR if (window2) ft->free_cb (dpy, window2, closure2); - if (window2) fps_free (fpst2); + if (fpst2) fps_free (fpst2); #endif } @@ -724,13 +727,17 @@ main (int argc, char **argv) { char *v = (char *) strdup(strchr(screensaver_id, ' ')); char *s1, *s2, *s3, *s4; + const char *ot = get_string_resource (dpy, "title", "Title"); s1 = (char *) strchr(v, ' '); s1++; s2 = (char *) strchr(s1, ' '); s3 = (char *) strchr(v, '('); s3++; s4 = (char *) strchr(s3, ')'); *s2 = 0; *s4 = 0; - sprintf (version, "%s: from the XScreenSaver %s distribution (%s.)", + if (ot && !*ot) ot = 0; + sprintf (version, "%.50s%s%s: from the XScreenSaver %s distribution (%s)", + (ot ? ot : ""), + (ot ? ": " : ""), progclass, s1, s3); free(v); } @@ -806,6 +813,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;