This function is called but metacity, and there it crashes. When we patch metacity to call gdk_screen_get_system_colormap, it doesn't crash (that whats the patch of the ppa package of Fabien does).
So it looks like the bug isn't really a metacity bug, but more a gtk+2.0 bug.
I compiled gtk+2.0 without the client side decoration patch, and then metacity doesn't have any issue!
This seems to be caused by client side decoration patch.
That patch has the following change: gdkscreen- x11.c gdkscreen- x11.c get_root_ window (GdkScreen *screen) get_default_ colormap (GdkScreen *screen) val_if_ fail (GDK_IS_SCREEN (screen), NULL); ->default_ colormap; x11->default_ colormap) x11->rgba_ visual) get_system_ colormap (screen)); x11->rgba_ visual, x11->default_ colormap = colormap; x11->default_ colormap;
+--- a/gdk/x11/
++++ b/gdk/x11/
+@@ -241,9 +241,29 @@ gdk_screen_
+ GdkColormap *
+ gdk_screen_
+ {
++ GdkScreenX11 *screen_x11;
++ GdkColormap *colormap;
++
+ g_return_
+
+- return GDK_SCREEN_X11 (screen)
++ screen_x11 = GDK_SCREEN_X11 (screen);
++
++ if (!screen_
++ {
++ if (!screen_
++ {
++ colormap = g_object_ref (gdk_screen_
++ }
++ else
++ {
++ colormap = gdk_colormap_new (screen_
++ FALSE);
++ }
++
++ screen_
++ }
++
++ return screen_
+ }
+
+ /**
This function is called but metacity, and there it crashes. When we patch metacity to call gdk_screen_ get_system_ colormap, it doesn't crash (that whats the patch of the ppa package of Fabien does).
So it looks like the bug isn't really a metacity bug, but more a gtk+2.0 bug.
I compiled gtk+2.0 without the client side decoration patch, and then metacity doesn't have any issue!