Blob Blame History Raw
diff -rup gtk+-2.12.8.orig/gdk/x11/gdkcolor-x11.c gtk+-2.12.8.new/gdk/x11/gdkcolor-x11.c
--- gtk+-2.12.8.orig/gdk/x11/gdkcolor-x11.c	2008-02-12 12:57:43.000000000 -0500
+++ gtk+-2.12.8.new/gdk/x11/gdkcolor-x11.c	2008-04-02 22:02:07.000000000 -0400
@@ -46,7 +46,7 @@ struct _GdkColormapPrivateX11
   GdkColorInfo *info;
   time_t last_sync_time;
 
-  guint foreign : 1;
+  gboolean foreign;
 };
 
 #define GDK_COLORMAP_PRIVATE_DATA(cmap) ((GdkColormapPrivateX11 *) GDK_COLORMAP (cmap)->windowing_data)
@@ -107,7 +107,7 @@ gdk_colormap_finalize (GObject *object)
 
   gdk_colormap_remove (colormap);
 
-  if (!private->screen->closed)
+  if (!private->screen->closed && !private->foreign)
     XFreeColormap (GDK_SCREEN_XDISPLAY (private->screen), private->xcolormap);
 
   if (private->hash)
@@ -1292,6 +1292,7 @@ gdk_x11_colormap_foreign_new (GdkVisual 
   private->screen = screen;
   private->xcolormap = xcolormap;
   private->private_val = FALSE;
+  private->foreign = TRUE;
 
   colormap->size = visual->colormap_size;