Don't try to snapshot invisible icons

These spew criticals when width == 0 || height == 0.
This commit is contained in:
Timm Bäder 2017-10-09 17:38:54 +02:00
parent f50832864e
commit 657983cfda
3 changed files with 13 additions and 8 deletions

View File

@ -43,10 +43,11 @@ gtk_icon_snapshot (GtkWidget *widget,
gtk_widget_get_content_size (widget, &width, &height);
gtk_css_style_snapshot_icon (style,
snapshot,
width, height,
self->image);
if (width > 0 && height > 0)
gtk_css_style_snapshot_icon (style,
snapshot,
width, height,
self->image);
}
static void

View File

@ -1476,10 +1476,11 @@ gtk_paned_render_handle (GtkGizmo *gizmo,
gtk_widget_get_content_size (widget, &width, &height);
gtk_css_style_snapshot_icon (style,
snapshot,
width, height,
GTK_CSS_IMAGE_BUILTIN_PANE_SEPARATOR);
if (width > 0 && height > 0)
gtk_css_style_snapshot_icon (style,
snapshot,
width, height,
GTK_CSS_IMAGE_BUILTIN_PANE_SEPARATOR);
return FALSE;
}

View File

@ -105,6 +105,9 @@ gtk_css_style_snapshot_icon (GtkCssStyle *style,
g_return_if_fail (GTK_IS_CSS_STYLE (style));
g_return_if_fail (snapshot != NULL);
if (width == 0.0 || height == 0.0)
return;
image = _gtk_css_image_value_get_image (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_SOURCE));
if (image == NULL)
return;