(unload_color): Don't free colors if immutable colormap.

This commit is contained in:
Richard M. Stallman 1995-07-19 15:47:28 +00:00
parent 6da74aab15
commit 828e66d1a5

View file

@ -363,14 +363,22 @@ unload_color (f, pixel)
{
Colormap cmap;
Display *dpy = FRAME_X_DISPLAY (f);
int class = FRAME_X_DISPLAY_INFO (f)->visual->class;
if (pixel == FACE_DEFAULT
|| pixel == BLACK_PIX_DEFAULT (f)
|| pixel == WHITE_PIX_DEFAULT (f))
return;
cmap = DefaultColormapOfScreen (DefaultScreenOfDisplay (dpy));
BLOCK_INPUT;
XFreeColors (dpy, cmap, &pixel, 1, (unsigned long)0);
UNBLOCK_INPUT;
/* If display has an immutable color map, freeing colors is not
necessary and some servers don't allow it. So don't do it. */
if (! (class == StaticColor || class == StaticGray || class == TrueColor))
{
BLOCK_INPUT;
XFreeColors (dpy, cmap, &pixel, 1, (unsigned long)0);
UNBLOCK_INPUT;
}
}
DEFUN ("pixmap-spec-p", Fpixmap_spec_p, Spixmap_spec_p, 1, 1, 0,