From e9fb8ad1f7606deb4ae35773351e67281d56aa9f Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 3 Feb 2014 15:56:59 +0100 Subject: css: Fix computation of pixels occupied by blur radius These computations were done randomly in lots of places and more often than not, they were also wrong. This function was copied (with docs) from Firefox: http://lxr.mozilla.org/mozilla-central/source/gfx/2d/Blur.cpp https://bugzilla.gnome.org/show_bug.cgi?id=723159 --- gtk/gtkcssshadowvalue.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'gtk/gtkcssshadowvalue.c') diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index cdfd852612..6dcd2dd798 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -31,10 +31,6 @@ #include -/* The blur of _gtk_cairo_blur_surface only approximately ends at radius, - so we add an extra pixel to make the clips less dramatic */ -#define CLIP_RADIUS_EXTRA 4 - struct _GtkCssValue { GTK_CSS_VALUE_BASE guint inset :1; @@ -327,7 +323,7 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow, gdk_cairo_get_clip_rectangle (cr, &clip_rect); - clip_radius = radius + CLIP_RADIUS_EXTRA; + clip_radius = _gtk_cairo_blur_compute_pixels (radius); /* Create a larger surface to center the blur. */ surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, @@ -534,7 +530,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow, spread = _gtk_css_number_value_get (shadow->spread, 0); radius = _gtk_css_number_value_get (shadow->radius, 0); - clip_radius = radius + CLIP_RADIUS_EXTRA; + clip_radius = _gtk_cairo_blur_compute_pixels (radius); x = _gtk_css_number_value_get (shadow->hoffset, 0); y = _gtk_css_number_value_get (shadow->voffset, 0); -- cgit v1.2.1