[gtk+/client-side-decorations: 258/258] Use RGBA by default, not just on GtkWindow



commit daa70039ce9b48b9c32fd7e5f9eb1615c7da0ccb
Author: Cody Russell <bratsche gnome org>
Date:   Mon Nov 23 08:10:36 2009 -0600

    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 1faa827..4c75ac4 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 314c71b..f9a3b72 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 a84072c..c407954 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1064,15 +1064,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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]