[gtk+/wip/baedert/symbolic-icons: 4/9] iconhelper: Safe whether the surface is symbolic
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/symbolic-icons: 4/9] iconhelper: Safe whether the surface is symbolic
- Date: Fri, 5 Feb 2016 09:41:43 +0000 (UTC)
commit f5aef4e925ce1c56d03d468dcb6cb67c449363f7
Author: Timm Bäder <mail baedert org>
Date: Fri Feb 5 09:30:24 2016 +0100
iconhelper: Safe whether the surface is symbolic
gtk/gtkiconhelper.c | 11 +++++++++++
gtk/gtkiconhelperprivate.h | 2 ++
2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index 73f105f..9c87a8f 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -42,6 +42,7 @@ struct _GtkIconHelperPrivate {
guint use_fallback : 1;
guint force_scale_pixbuf : 1;
+ guint surface_is_symbolic : 1;
cairo_surface_t *rendered_surface;
};
@@ -205,6 +206,7 @@ gtk_icon_helper_init (GtkIconHelper *self)
self->priv->icon_size = GTK_ICON_SIZE_INVALID;
self->priv->pixel_size = -1;
+ self->priv->surface_is_symbolic = FALSE;
}
static void
@@ -419,6 +421,7 @@ ensure_surface_for_gicon (GtkIconHelper *self,
gint scale,
GIcon *gicon)
{
+ GtkIconHelperPrivate *priv = self->priv;
GtkIconTheme *icon_theme;
gint width, height;
GtkIconInfo *info;
@@ -485,10 +488,12 @@ ensure_surface_for_gicon (GtkIconHelper *self,
surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window
(gtk_css_gadget_get_owner (GTK_CSS_GADGET (self))));
icon_effect = _gtk_css_icon_effect_value_get (gtk_css_style_get_value (style,
GTK_CSS_PROPERTY_ICON_EFFECT));
gtk_css_icon_effect_apply (icon_effect, surface);
+ priv->surface_is_symbolic = FALSE;
}
else
{
surface = gdk_cairo_surface_create_from_pixbuf (destination, scale, gtk_widget_get_window
(gtk_css_gadget_get_owner (GTK_CSS_GADGET (self))));
+ priv->surface_is_symbolic = TRUE;
}
g_object_unref (destination);
@@ -930,3 +935,9 @@ _gtk_icon_helper_set_pixbuf_scale (GtkIconHelper *self,
break;
}
}
+
+gboolean
+gtk_icon_helper_surface_is_symbolic (GtkIconHelper *self)
+{
+ return self->priv->surface_is_symbolic;
+}
diff --git a/gtk/gtkiconhelperprivate.h b/gtk/gtkiconhelperprivate.h
index f4bdcd4..52d41f5 100644
--- a/gtk/gtkiconhelperprivate.h
+++ b/gtk/gtkiconhelperprivate.h
@@ -140,6 +140,8 @@ void _gtk_icon_helper_set_force_scale_pixbuf (GtkIconHelper *self,
void gtk_icon_helper_invalidate (GtkIconHelper *self);
+gboolean gtk_icon_helper_surface_is_symbolic (GtkIconHelper *self);
+
G_END_DECLS
#endif /* __GTK_ICON_HELPER_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]