http://www.jwz.org/xscreensaver/xscreensaver-5.07.tar.gz
[xscreensaver] / hacks / flag.c
index 885fa898b6fcc32d5e945b3e1a504e1f15b3485a..fee5198770452b864534b46435577cfcf3cff828 100644 (file)
@@ -45,7 +45,9 @@ static const char sccsid[] = "@(#)flag.c      4.02 97/04/01 xlockmore";
                                        "*ncolors:              200     \n"             \
                                        "*bitmap:                               \n"             \
                                        "*font:         " DEF_FONT      "\n"    \
-                                       "*text:                                 \n"
+                                       "*text:                                 \n" \
+                                       "*fpsSolid:             true    \n" \
+
 # define BRIGHT_COLORS
 # define UNIFORM_COLORS
 # define reshape_flag 0
@@ -192,6 +194,10 @@ make_flag_bits(ModeInfo *mi)
   char *bitmap_name = get_string_resource (dpy, "bitmap", "Bitmap");
   char *text = get_string_resource (dpy, "text", "Text");
 
+#ifdef HAVE_COCOA
+  bitmap_name = 0;  /* #### always use default */
+#endif
+
   /* If neither a bitmap nor text are specified, randomly select either
         the builtin bitmap or builtin text. */
   if ((!bitmap_name || !*bitmap_name) && (!text || !*text))
@@ -347,7 +353,9 @@ make_flag_bits(ModeInfo *mi)
          fp->image = XGetImage(dpy, bitmap, 0, 0, width, height, 1L, XYPixmap);
          XFreePixmap(dpy, bitmap);
        }
-  else
+
+
+  if (! fp->image)
        {
       char *bits = (char *) malloc (sizeof(bob_bits));
       memcpy (bits, bob_bits, sizeof(bob_bits));
@@ -403,6 +411,7 @@ init_flag(ModeInfo * mi)
        fp = &flags[MI_SCREEN(mi)];
 
        make_flag_bits(mi);
+    if (!fp->image) abort();
 
        fp->width = MI_WIN_WIDTH(mi);
        fp->height = MI_WIN_HEIGHT(mi);
@@ -472,6 +481,7 @@ draw_flag(ModeInfo * mi)
        Window      window = MI_WINDOW(mi);
        flagstruct *fp = &flags[MI_SCREEN(mi)];
 
+    if (!fp->image) abort();
     if (fp->cache == window) {  /* not double-buffering */
       XClearWindow (display, window);
     } else if (fp->width <= MAXW(fp) || fp->height <= MAXH(fp)) {