summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ephy-tab-label.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/ephy-tab-label.c b/src/ephy-tab-label.c
index 748cbd7a5..bb2ea16c2 100644
--- a/src/ephy-tab-label.c
+++ b/src/ephy-tab-label.c
@@ -103,7 +103,6 @@ ephy_tab_label_set_property (GObject *object,
{
EphyTabLabel *self = EPHY_TAB_LABEL (object);
const gchar *str;
- cairo_surface_t *surface;
switch (prop_id) {
case PROP_LABEL_TEXT:
@@ -122,12 +121,19 @@ ephy_tab_label_set_property (GObject *object,
}
break;
case PROP_ICON_BUF:
- surface = gdk_cairo_surface_create_from_pixbuf (g_value_get_object (value),
- 0,
- gtk_widget_get_window (GTK_WIDGET (self)));
- gtk_image_set_from_surface (GTK_IMAGE (self->icon), surface);
- cairo_surface_destroy (surface);
- self->has_icon = g_value_get_object (value) != NULL;
+ if (g_value_get_object (value)) {
+ cairo_surface_t *surface;
+
+ surface = gdk_cairo_surface_create_from_pixbuf (g_value_get_object (value),
+ 0,
+ gtk_widget_get_window (GTK_WIDGET (self)));
+ gtk_image_set_from_surface (GTK_IMAGE (self->icon), surface);
+ cairo_surface_destroy (surface);
+ self->has_icon = TRUE;
+ } else {
+ gtk_image_set_from_surface (GTK_IMAGE (self->icon), NULL);
+ self->has_icon = FALSE;
+ }
ephy_tab_label_update_icon (self);
break;
case PROP_SPINNING: