Jonas Dreßler 118676bffb st/theme: Unref CRStylesheet after removing old theme nodes
Since we now remove all theme nodes on a stylesheet change (ie.
StTheme's "custom-stylesheets-changed" signal) instead of only
invalidating them, those nodes may not be accessed anymore as soon as
"custom-stylesheets-changed" is emitted.

It turned out though that when comparing them to the newly generated
nodes in `st_widget_recompute_style()` using the
`st_theme_node_paint/geometry_equal()` functions, the properties of the
old nodes will still be accessed, causing a crash since the
CRDeclarations are already freed.

To fix that, keep the reference to the CRStylesheet, which owns the
CRDeclarations used by the theme nodes, around a bit longer, so it's
still possible to access the CRDeclarations inside the
"custom-stylesheets-changed" signal handler. This allows us to compare
the old theme nodes to the new ones since the CSS properties of both are
still valid.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2709


(cherry picked from commit e06109c23ce2a6dd53d32c26a89ab46a952d7373)
2020-05-01 14:32:38 +00:00
..
2019-12-02 08:04:51 -06:00
2020-01-20 16:15:22 -03:00
2019-11-04 21:27:56 +01:00
2019-11-04 21:27:56 +01:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2019-11-22 18:55:40 +01:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2015-10-15 22:02:35 +02:00
2013-09-18 20:01:49 +02:00
2015-10-15 22:02:35 +02:00
2019-01-30 22:50:01 +01:00
2015-10-15 22:02:35 +02:00
2019-03-04 22:29:33 +00:00
2012-08-29 16:41:09 -03:00
2020-01-20 16:15:22 -03:00
2020-01-20 16:15:22 -03:00
2017-07-20 00:20:54 +02:00
2019-08-27 15:30:51 +03:00