X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fscreenhack.c;h=c3c8ad4aa713280b5809c91e3253c2a29d0ff540;hb=de041722414a2e31c1c04caa10aaec9d6952e9b4;hp=786d24b4cc5ddf95a3f02eb4186c5c5fecedb0e8;hpb=72c1f4c1dc6ab07fe121a327ff1c30bf51ef74c1;p=xscreensaver diff --git a/hacks/screenhack.c b/hacks/screenhack.c index 786d24b4..c3c8ad4a 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -301,7 +301,16 @@ visual_warning (Screen *screen, Window window, Visual *visual, Colormap cmap, if (visual_string && *visual_string) { - if (visual != desired_visual) + char *s; + for (s = visual_string; *s; s++) + if (isupper (*s)) *s = _tolower (*s); + + if (!strcmp (visual_string, "default") || + !strcmp (visual_string, "default") || + !strcmp (visual_string, "best")) + /* don't warn about these, just silently DWIM. */ + ; + else if (visual != desired_visual) { fprintf (stderr, "%s: ignoring `-visual %s' because of `%s'.\n", progname, visual_string, why); @@ -320,6 +329,11 @@ visual_warning (Screen *screen, Window window, Visual *visual, Colormap cmap, fprintf (stderr, "%s: using %s's colormap 0x%x.\n", progname, win, (unsigned long) cmap); } + +# ifdef USE_GL + if (!validate_gl_visual (stderr, screen, win, visual)) + exit (1); +# endif /* USE_GL */ } @@ -459,6 +473,11 @@ main (int argc, char **argv) Boolean def_visual_p; visual = pick_visual (screen); +# ifdef USE_GL + if (!validate_gl_visual (stderr, screen, "window", visual)) + exit (1); +# endif /* USE_GL */ + if (toplevel->core.width <= 0) toplevel->core.width = 600; if (toplevel->core.height <= 0) @@ -486,6 +505,7 @@ main (int argc, char **argv) XtNcolormap, cmap, XtNbackground, (Pixel) bg, XtNborderColor, (Pixel) bd, + XtNinput, True, /* for WM_HINTS */ 0); XtDestroyWidget (toplevel); toplevel = new; @@ -494,7 +514,10 @@ main (int argc, char **argv) } else { - XtVaSetValues (toplevel, XtNmappedWhenManaged, False, 0); + XtVaSetValues (toplevel, + XtNmappedWhenManaged, False, + XtNinput, True, /* for WM_HINTS */ + 0); XtRealizeWidget (toplevel); window = XtWindow (toplevel); @@ -551,7 +574,13 @@ main (int argc, char **argv) XIfEvent (dpy, &event, MapNotify_event_p, (XPointer) window); XSync (dpy, False); - srandom ((int) time ((time_t *) 0)); + + /* This is the one and only place that the random-number generator is + seeded in any screenhack. You do not need to seed the RNG again, + it is done for you before your code is invoked. */ +# undef ya_rand_init + ya_rand_init (0); + screenhack (dpy, window); /* doesn't return */ return 0; }