Comment 19 for bug 584287

Revision history for this message
Jean-Louis Dupond (dupondje) wrote :

This seems to be caused by client side decoration patch.

That patch has the following change:
+--- a/gdk/x11/gdkscreen-x11.c
++++ b/gdk/x11/gdkscreen-x11.c
+@@ -241,9 +241,29 @@ gdk_screen_get_root_window (GdkScreen *screen)
+ GdkColormap *
+ gdk_screen_get_default_colormap (GdkScreen *screen)
+ {
++ GdkScreenX11 *screen_x11;
++ GdkColormap *colormap;
++
+ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
+
+- return GDK_SCREEN_X11 (screen)->default_colormap;
++ screen_x11 = GDK_SCREEN_X11 (screen);
++
++ if (!screen_x11->default_colormap)
++ {
++ if (!screen_x11->rgba_visual)
++ {
++ colormap = g_object_ref (gdk_screen_get_system_colormap (screen));
++ }
++ else
++ {
++ colormap = gdk_colormap_new (screen_x11->rgba_visual,
++ FALSE);
++ }
++
++ screen_x11->default_colormap = colormap;
++ }
++
++ return screen_x11->default_colormap;
+ }
+
+ /**

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!