From a14a0c6315a59da5bbdc94f31812f04ceadb7c87 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 3 Feb 2021 11:21:23 -0500 Subject: [PATCH] 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. --- gtk/gtkcssshadowvalue.c | 10 +++++----- testsuite/reftests/frame-inhibitor.c | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index 9ad69b9182..126e9af8f2 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -151,11 +151,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; }