changeset 27991:cf10555b8ce0

(x_term_init): Create a colormap if not using the default visual.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 05 Mar 2000 10:23:14 +0000
parents 723662ab7db4
children aed40c47cda2
files src/xterm.c
diffstat 1 files changed, 19 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Sun Mar 05 10:21:53 2000 +0000
+++ b/src/xterm.c	Sun Mar 05 10:23:14 2000 +0000
@@ -12988,8 +12988,7 @@
 
   dpyinfo->screen = ScreenOfDisplay (dpyinfo->display,
 				     DefaultScreen (dpyinfo->display));
-  dpyinfo->visual = select_visual (dpyinfo->display, dpyinfo->screen,
-				   &dpyinfo->n_planes);
+  select_visual (dpyinfo);
   dpyinfo->cmap = DefaultColormapOfScreen (dpyinfo->screen);
   dpyinfo->height = HeightOfScreen (dpyinfo->screen);
   dpyinfo->width = WidthOfScreen (dpyinfo->screen);
@@ -13018,19 +13017,24 @@
   dpyinfo->image_cache = make_image_cache ();
 
   /* See if a private colormap is requested.  */
-  if (dpyinfo->visual == DefaultVisualOfScreen (dpyinfo->screen)
-      && dpyinfo->visual->class == PseudoColor)
-    {
-      Lisp_Object value;
-      value = display_x_get_resource (dpyinfo,
-				      build_string ("privateColormap"),
-				      build_string ("PrivateColormap"),
-				      Qnil, Qnil);
-      if (STRINGP (value)
-	  && (!strcmp (XSTRING (value)->data, "true")
-	      || !strcmp (XSTRING (value)->data, "on")))
-	dpyinfo->cmap = XCopyColormapAndFree (dpyinfo->display, dpyinfo->cmap);
-    }
+  if (dpyinfo->visual == DefaultVisualOfScreen (dpyinfo->screen))
+    {
+      if (dpyinfo->visual->class == PseudoColor)
+	{
+	  Lisp_Object value;
+	  value = display_x_get_resource (dpyinfo,
+					  build_string ("privateColormap"),
+					  build_string ("PrivateColormap"),
+					  Qnil, Qnil);
+	  if (STRINGP (value)
+	      && (!strcmp (XSTRING (value)->data, "true")
+		  || !strcmp (XSTRING (value)->data, "on")))
+	    dpyinfo->cmap = XCopyColormapAndFree (dpyinfo->display, dpyinfo->cmap);
+	}
+    }
+  else
+    dpyinfo->cmap = XCreateColormap (dpyinfo->display, dpyinfo->root_window,
+				     dpyinfo->visual, AllocNone);
       
   {
     int screen_number = XScreenNumberOfScreen (dpyinfo->screen);