[Xfce4-commits] <xfce4-panel:nick/gtk3> Changed systray to use visuals.

Peter de Ridder noreply at xfce.org
Tue Apr 16 21:28:01 CEST 2013


Updating branch refs/heads/nick/gtk3
         to a3b73cb278a0ff2d2f939edd5aa9b53860b2812c (commit)
       from 83b7df032eceb5ad4266611effd98663f8eda55d (commit)

commit a3b73cb278a0ff2d2f939edd5aa9b53860b2812c
Author: Peter de Ridder <peter at xfce.org>
Date:   Tue Apr 16 20:28:22 2013 +0200

    Changed systray to use visuals.

 plugins/systray/systray-socket.c |   50 +++++++++++--------------------------
 1 files changed, 15 insertions(+), 35 deletions(-)

diff --git a/plugins/systray/systray-socket.c b/plugins/systray/systray-socket.c
index 18dcc0d..6188774 100644
--- a/plugins/systray/systray-socket.c
+++ b/plugins/systray/systray-socket.c
@@ -136,14 +136,13 @@ systray_socket_realize (GtkWidget *widget)
 
       socket->parent_relative_bg = FALSE;
     }
-  // FIXME
-  //else if (gtk_widget_get_visual (widget) ==
-  //         gdk_drawable_get_visual (GDK_DRAWABLE (gdk_window_get_parent (window))))
-  //  {
-  //    gdk_window_set_back_pixmap (window, NULL, TRUE);
-  //
-  //    socket->parent_relative_bg = TRUE;
-  //  }
+  else if (gtk_widget_get_visual (widget) ==
+           gdk_window_get_visual (gdk_window_get_parent (window)))
+    {
+      gdk_window_set_background_pattern (window, NULL);
+
+      socket->parent_relative_bg = TRUE;
+    }
   else
     {
       socket->parent_relative_bg = FALSE;
@@ -246,8 +245,7 @@ systray_socket_new (GdkScreen       *screen,
   XWindowAttributes  attr;
   gint               result;
   GdkVisual         *visual;
-  //GdkColormap       *colormap; //FIXME
-  //gboolean           release_colormap = FALSE;
+  gint               red_prec, green_prec, blue_prec;
 
   panel_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
 
@@ -267,37 +265,19 @@ systray_socket_new (GdkScreen       *screen,
   if (G_UNLIKELY (visual == NULL))
     return NULL;
 
-  /* get the correct colormap */
-  // FIXME
-  //if (visual == gdk_screen_get_rgb_visual (screen))
-  //  colormap = gdk_screen_get_rgb_colormap (screen);
-  //else if (visual == gdk_screen_get_rgba_visual (screen))
-  //  colormap = gdk_screen_get_rgba_colormap (screen);
-  //else if (visual == gdk_screen_get_system_visual (screen))
-  //  colormap = gdk_screen_get_system_colormap (screen);
-  //else
-  //  {
-  //    /* create custom colormap */
-  //    colormap = gdk_colormap_new (visual, FALSE);
-  //    release_colormap = TRUE;
-  //  }
-
   /* create a new socket */
   socket = g_object_new (XFCE_TYPE_SYSTRAY_SOCKET, NULL);
   socket->window = window;
   socket->is_composited = FALSE;
-  //gtk_widget_set_colormap (GTK_WIDGET (socket), colormap); //FIXME
-
-  /* release the custom colormap */
-  // FIXME
-  //if (release_colormap)
-  //  g_object_unref (G_OBJECT (colormap));
+  gtk_widget_set_visual (GTK_WIDGET (socket), visual);
 
   /* check if there is an alpha channel in the visual */
-  // FIXME
-  //if (visual->red_prec + visual->blue_prec + visual->green_prec < visual->depth
-  //    && gdk_display_supports_composite (gdk_screen_get_display (screen)))
-  //  socket->is_composited = TRUE;
+  gdk_visual_get_red_pixel_details (visual, NULL, NULL, &red_prec);
+  gdk_visual_get_green_pixel_details (visual, NULL, NULL, &green_prec);
+  gdk_visual_get_blue_pixel_details (visual, NULL, NULL, &blue_prec);
+  if (red_prec + blue_prec + green_prec < gdk_visual_get_depth (visual)
+      && gdk_display_supports_composite (gdk_screen_get_display (screen)))
+    socket->is_composited = TRUE;
 
   return GTK_WIDGET (socket);
 }


More information about the Xfce4-commits mailing list