[Xfce4-commits] <xfce4-panel:master> Libxfce4panel: Draw panel images with cairo.

Nick Schermer noreply at xfce.org
Sun Mar 27 11:50:03 CEST 2011


Updating branch refs/heads/master
         to 093eeba9369baf653bd1da0d48c63eff1c4cef86 (commit)
       from f5b40d91f163d84b4a6d28adee7810433269cd78 (commit)

commit 093eeba9369baf653bd1da0d48c63eff1c4cef86
Author: Sean Middleditch <sean at middleditch.us>
Date:   Sun Mar 27 11:26:21 2011 +0200

    Libxfce4panel: Draw panel images with cairo.

 libxfce4panel/xfce-panel-image.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/libxfce4panel/xfce-panel-image.c b/libxfce4panel/xfce-panel-image.c
index 1126d1e..3af8488 100644
--- a/libxfce4panel/xfce-panel-image.c
+++ b/libxfce4panel/xfce-panel-image.c
@@ -374,6 +374,7 @@ xfce_panel_image_expose_event (GtkWidget      *widget,
   GtkIconSource         *source;
   GdkPixbuf             *rendered = NULL;
   GdkPixbuf             *pixbuf = priv->cache;
+  cairo_t               *cr;
 
   if (G_LIKELY (pixbuf != NULL))
     {
@@ -402,12 +403,13 @@ xfce_panel_image_expose_event (GtkWidget      *widget,
         }
 
       /* draw the pixbuf */
-      gdk_draw_pixbuf (widget->window,
-                       widget->style->black_gc,
-                       pixbuf, 0, 0,
-                       dest_x, dest_y,
-                       source_width, source_height,
-                       GDK_RGB_DITHER_NORMAL, 0, 0);
+      cr = gdk_cairo_create (gtk_widget_get_window (widget));
+      if (G_LIKELY (cr != NULL))
+        {
+          gdk_cairo_set_source_pixbuf (cr, pixbuf, dest_x, dest_y);
+          cairo_paint (cr);
+          cairo_destroy (cr);
+        }
 
       if (rendered != NULL)
         g_object_unref (G_OBJECT (rendered));



More information about the Xfce4-commits mailing list