summaryrefslogtreecommitdiff
path: root/gtk/gtkcssdimensionvalue.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-04-18 21:10:32 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-04-18 21:10:32 -0400
commita7cad7909261094b46de548033983bf2fd3f7619 (patch)
tree6d8ba30e72361482abd13465cedd6dc395b423aa /gtk/gtkcssdimensionvalue.c
parentef8e8ba14d3f316dbade504b7481b38085bfabc0 (diff)
downloadgtk+-a7cad7909261094b46de548033983bf2fd3f7619.tar.gz
css: Allow transitioning between different units again
This turns out to be necessary for transitioning filters, and we run into criticals if transitioning numbers unexpectedly returns NULL. I've observed that with * { filter: invert(80%); } This was broken in c9e972eecb3a78ea.
Diffstat (limited to 'gtk/gtkcssdimensionvalue.c')
-rw-r--r--gtk/gtkcssdimensionvalue.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gtk/gtkcssdimensionvalue.c b/gtk/gtkcssdimensionvalue.c
index 7c918d6da1..10effe22d7 100644
--- a/gtk/gtkcssdimensionvalue.c
+++ b/gtk/gtkcssdimensionvalue.c
@@ -248,10 +248,10 @@ gtk_css_value_dimension_transition (GtkCssValue *start,
guint property_id,
double progress)
{
- if (start->unit != end->unit)
- return NULL;
+ if (start->unit == end->unit)
+ return gtk_css_dimension_value_new (start->value + (end->value - start->value) * progress, start->unit);
- return gtk_css_dimension_value_new (start->value + (end->value - start->value) * progress, start->unit);
+ return gtk_css_number_value_transition (start, end, property_id, progress);
}
static const GtkCssNumberValueClass GTK_CSS_VALUE_DIMENSION = {