[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1952: xtrlock doesn't handle out of colourmap situations well



The following patch makes xtrlock back off to black and white if it
can't get sensible colours.

Austin

--- xtrlock-2.0/xtrlock.c       Wed Nov  8 20:51:27 1995
+++ xtrlock-2.0.new/xtrlock.c   Thu Feb  8 22:09:05 1996
@@ -70,6 +70,7 @@
   Cursor cursor;
   Pixmap csr_source,csr_mask;
   XColor csr_fg, csr_bg, dummy;
+  int ret;

   if (argc != 1) {
     fprintf(stderr,"xtrlock (version %s): no arguments allowed\n",program_version);
@@ -100,10 +101,28 @@
   csr_source= XCreateBitmapFromData(display,window,lock_bits,lock_width,lock_height);
   csr_mask= XCreateBitmapFromData(display,window,mask_bits,mask_width,mask_height);

-  XAllocNamedColor(display,DefaultColormap(display,DefaultScreen(display)),
-                   "steelblue3",&dummy,&csr_bg);
-  XAllocNamedColor(display,DefaultColormap(display,DefaultScreen(display)),
-                   "grey25",&dummy,&csr_fg);
+  ret = XAllocNamedColor(display,
+                        DefaultColormap(display, DefaultScreen(display)),
+                        "steelblue3",
+                        &dummy, &csr_bg);
+  if (ret==0)
+    XAllocNamedColor(display,
+                    DefaultColormap(display, DefaultScreen(display)),
+                    "black",
+                    &dummy, &csr_bg);
+
+  ret = XAllocNamedColor(display,
+                        DefaultColormap(display,DefaultScreen(display)),
+                        "grey25",
+                        &dummy, &csr_fg);
+  if (ret==0)
+    XAllocNamedColor(display,
+                    DefaultColormap(display, DefaultScreen(display)),
+                    "white",
+                    &dummy, &csr_bg);
+
+
+
   cursor= XCreatePixmapCursor(display,csr_source,csr_mask,&csr_fg,&csr_bg,
                               lock_x_hot,lock_y_hot);


Reply to: