diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-02-01 09:11:39 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-02-01 09:11:39 +0100 |
commit | 7fbb37a09ff2e8eab5ceb51718fb6bbe458810ea (patch) | |
tree | 27e8110347e85d2fce6dee96ca491670df513908 /gtk/gtkrenderbackground.c | |
parent | 7027fc9ab6e523ed359ae2ac92f997ee82d81560 (diff) | |
download | gtk+-7fbb37a09ff2e8eab5ceb51718fb6bbe458810ea.tar.gz |
background: Don't render initial backgrounds
Add a fast exit for the common case that the background
values are unset.
Diffstat (limited to 'gtk/gtkrenderbackground.c')
-rw-r--r-- | gtk/gtkrenderbackground.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/gtk/gtkrenderbackground.c b/gtk/gtkrenderbackground.c index cb387f1c9d..2868e39ed2 100644 --- a/gtk/gtkrenderbackground.c +++ b/gtk/gtkrenderbackground.c @@ -261,14 +261,25 @@ gtk_css_style_snapshot_background (GtkCssBoxes *boxes, GtkSnapshot *snapshot) { GtkCssBackgroundValues *background = boxes->style->background; - GtkCssValue *background_image = background->background_image; - const GdkRGBA *bg_color = gtk_css_color_value_get_rgba (background->background_color); - const GtkCssValue *box_shadow = background->box_shadow; - const gboolean has_bg_color = !gdk_rgba_is_clear (bg_color); - const gboolean has_bg_image = _gtk_css_image_value_get_image (_gtk_css_array_value_get_nth (background_image, 0)) != NULL; - const gboolean has_shadow = !gtk_css_shadow_value_is_none (box_shadow); + GtkCssValue *background_image; + const GdkRGBA *bg_color; + const GtkCssValue *box_shadow; + gboolean has_bg_color; + gboolean has_bg_image; + gboolean has_shadow; gint idx; + if (background->base.type == GTK_CSS_BACKGROUND_INITIAL_VALUES) + return; + + background_image = background->background_image; + bg_color = gtk_css_color_value_get_rgba (background->background_color); + box_shadow = background->box_shadow; + + has_bg_color = !gdk_rgba_is_clear (bg_color); + has_bg_image = _gtk_css_image_value_get_image (_gtk_css_array_value_get_nth (background_image, 0)) != NULL; + has_shadow = !gtk_css_shadow_value_is_none (box_shadow); + /* This is the common default case of no background */ if (!has_bg_color && !has_bg_image && !has_shadow) return; |