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: