From 170d8bf584285aabb4e1c83ad7cd4e2df8d1f8b4 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Mon, 23 Nov 2009 08:10:36 -0600 Subject: [PATCH] Use RGBA by default, not just on GtkWindow --- gdk/x11/gdkscreen-x11.c | 22 +++++++++++++++++++++- gdk/x11/gdkwindow-x11.c | 3 --- gtk/gtkwindow.c | 9 --------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c index 4a8fc68baf..3d9d4c7413 100644 --- 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; } /** diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index 1771873218..183779bbb7 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -426,9 +426,6 @@ _gdk_windowing_window_init (GdkScreen * screen) g_assert (screen_x11->root_window == NULL); - gdk_screen_set_default_colormap (screen, - gdk_screen_get_system_colormap (screen)); - screen_x11->root_window = g_object_new (GDK_TYPE_WINDOW, NULL); private = (GdkWindowObject *) screen_x11->root_window; diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 3e240731ec..764b33a204 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1079,15 +1079,6 @@ gtk_window_init (GtkWindow *window) gtk_widget_show (label); gtk_window_set_label_widget (window, label); -#if 0 - colormap = _gtk_widget_peek_colormap (); - if (colormap) - gtk_widget_set_colormap (GTK_WIDGET (window), colormap); -#else - gtk_widget_set_colormap (GTK_WIDGET (window), - gdk_screen_get_rgba_colormap (gtk_widget_get_screen (GTK_WIDGET (window)))); -#endif - g_object_ref_sink (window); window->has_user_ref_count = TRUE; toplevel_list = g_slist_prepend (toplevel_list, window);