cssvalue: Add is_computed flag
authorTimm Bäder <mail@baedert.org>
Sat, 11 Jan 2020 11:53:23 +0000 (12:53 +0100)
committerTimm Bäder <mail@baedert.org>
Sat, 18 Jan 2020 07:49:51 +0000 (08:49 +0100)
commit31aa5a0e53c869856d2c16bf7d0b15b9b7d6f545
treea00b846366cab2a77461e79913e8e8543050a8e6
parent7aa17afe7a15af10e750da8ee98fc692d09e49fd
cssvalue: Add is_computed flag

When a css value has "child" css values (e.g. a linear gradient has
several color stop css values) which are all computed (won't change when
compute() is called on them), we want to skip computing the entire
subtree.

Since css values are immutable, we can set the is_computed flag at
construct time.

Since GtkCssValue instances are 0-initialized in _gtk_css_value_alloc,
the default for is_computed it FALSE. This commit only sets it to TRUE
in a few cases, such as various "none" singleton values which will never
change. Later commits will refine this and set it for more values.
12 files changed:
gtk/gtkcssbgsizevalue.c
gtk/gtkcsscolorvalue.c
gtk/gtkcssdimensionvalue.c
gtk/gtkcssenumvalue.c
gtk/gtkcssfiltervalue.c
gtk/gtkcssiconthemevalue.c
gtk/gtkcssimagevalue.c
gtk/gtkcssrepeatvalue.c
gtk/gtkcssshadowsvalue.c
gtk/gtkcsstransformvalue.c
gtk/gtkcssvalue.c
gtk/gtkcssvalueprivate.h