[gtk+] iconhelper: Return surface from icon-effect function
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] iconhelper: Return surface from icon-effect function
- Date: Fri, 4 Dec 2015 16:45:20 +0000 (UTC)
commit cefba86fb366adc3584ad59607e1a8864d1bd9f8
Author: Benjamin Otte <otte redhat com>
Date: Fri Dec 4 16:18:23 2015 +0100
iconhelper: Return surface from icon-effect function
All the callers where converting to a surface anyway.
gtk/gtkiconhelper.c | 37 +++++++++++++++++--------------------
1 files changed, 17 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index 2dd4cd2..acae39c 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -154,13 +154,16 @@ ensure_icon_size (GtkIconHelper *self,
*height_out = height;
}
-static GdkPixbuf *
-ensure_stated_pixbuf_from_pixbuf (GtkIconHelper *self,
- GtkStyleContext *context,
- GdkPixbuf *pixbuf)
+static cairo_surface_t *
+ensure_stated_surface_from_pixbuf (GtkIconHelper *self,
+ GtkStyleContext *context,
+ GdkPixbuf *pixbuf,
+ gint scale,
+ GdkWindow *window)
{
GdkPixbuf *rendered;
GtkIconSource *source;
+ cairo_surface_t *surface;
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
@@ -181,7 +184,11 @@ ensure_stated_pixbuf_from_pixbuf (GtkIconHelper *self,
G_GNUC_END_IGNORE_DEPRECATIONS;
- return rendered;
+ surface = gdk_cairo_surface_create_from_pixbuf (rendered, scale, window);
+
+ g_object_unref (rendered);
+
+ return surface;
}
static GtkIconLookupFlags
@@ -356,7 +363,7 @@ ensure_surface_from_pixbuf (GtkIconHelper *self,
{
gint width, height;
cairo_surface_t *surface;
- GdkPixbuf *pixbuf, *stated;
+ GdkPixbuf *pixbuf;
if (get_pixbuf_size (self,
context,
@@ -370,11 +377,7 @@ ensure_surface_from_pixbuf (GtkIconHelper *self,
else
pixbuf = g_object_ref (orig_pixbuf);
- stated = ensure_stated_pixbuf_from_pixbuf (self, context, pixbuf);
- g_object_unref (pixbuf);
- pixbuf = stated;
-
- surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, self->priv->window);
+ surface = ensure_stated_surface_from_pixbuf (self, context, pixbuf, scale, self->priv->window);
g_object_unref (pixbuf);
return surface;
@@ -446,15 +449,9 @@ ensure_surface_for_gicon (GtkIconHelper *self,
}
if (!symbolic)
- {
- GdkPixbuf *rendered;
-
- rendered = ensure_stated_pixbuf_from_pixbuf (self, context, destination);
- g_object_unref (destination);
- destination = rendered;
- }
-
- surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window);
+ surface = ensure_stated_surface_from_pixbuf (self, context, destination, scale, self->priv->window);
+ else
+ surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, self->priv->window);
g_object_unref (destination);
return surface;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]