summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-02-03 11:21:23 -0500
committerMatthias Clasen <mclasen@redhat.com>2021-02-07 11:43:28 -0500
commit7af9d1fe3d8550a3c8c42a28218b8e85fb94ba6a (patch)
treec210150c326add79146de901d2ee1805e882e532
parent4cd4d75b81db3ee65267258aafcfbfafa8bb8878 (diff)
downloadgtk+-7af9d1fe3d8550a3c8c42a28218b8e85fb94ba6a.tar.gz
css: Fix shadow value equal
This function was not doing the right thing. Once we are doing the right thing and not compare shadows as unequal, some reftests that inhibit snapshots for a few frames now hang forever, since we are no more redrawing unnecessarily. Fix that with an explicit queue_draw.
-rw-r--r--gtk/gtkcssshadowvalue.c10
-rw-r--r--testsuite/reftests/frame-inhibitor.c1
2 files changed, 6 insertions, 5 deletions
diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c
index 0429c44be6..8171545149 100644
--- a/gtk/gtkcssshadowvalue.c
+++ b/gtk/gtkcssshadowvalue.c
@@ -152,11 +152,11 @@ gtk_css_value_shadow_equal (const GtkCssValue *value1,
const ShadowValue *shadow2 = &value2->shadows[i];
if (shadow1->inset != shadow2->inset ||
- _gtk_css_value_equal (shadow1->hoffset, shadow2->hoffset) ||
- _gtk_css_value_equal (shadow1->voffset, shadow2->voffset) ||
- _gtk_css_value_equal (shadow1->radius, shadow2->radius) ||
- _gtk_css_value_equal (shadow1->spread, shadow2->spread) ||
- _gtk_css_value_equal (shadow1->color, shadow2->color))
+ !_gtk_css_value_equal (shadow1->hoffset, shadow2->hoffset) ||
+ !_gtk_css_value_equal (shadow1->voffset, shadow2->voffset) ||
+ !_gtk_css_value_equal (shadow1->radius, shadow2->radius) ||
+ !_gtk_css_value_equal (shadow1->spread, shadow2->spread) ||
+ !_gtk_css_value_equal (shadow1->color, shadow2->color))
return FALSE;
}
diff --git a/testsuite/reftests/frame-inhibitor.c b/testsuite/reftests/frame-inhibitor.c
index 567dc07ae1..9d699c4224 100644
--- a/testsuite/reftests/frame-inhibitor.c
+++ b/testsuite/reftests/frame-inhibitor.c
@@ -30,6 +30,7 @@ tick_callback_for_1_frame (GtkWidget *widget,
gpointer unused)
{
reftest_uninhibit_snapshot ();
+ gtk_widget_queue_draw (widget);
return G_SOURCE_REMOVE;
}