gnome-shell/src
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 e06109c23c)
2020-05-01 14:32:38 +00:00
..
calendar-server calendar-server: Remove unused defines 2020-02-26 22:53:00 +00:00
hotplug-sniffer cleanup: Use g_clear_handle_id() for g_source_remove() 2019-11-22 01:45:25 +01:00
st st/theme: Unref CRStylesheet after removing old theme nodes 2020-05-01 14:32:38 +00:00
tray Ensure G_PARAM_STATIC_STRINGS for all properties 2019-07-30 13:58:44 +00:00
data-to-c.pl build: Fix the path of perl for data-to-c.pl 2015-05-22 19:03:44 +08:00
gnome-shell-extension-prefs Add small gnome-shell-extension-prefs script 2020-04-30 00:57:27 +02:00
gnome-shell-extension-tool.in shell-extension-tool: Fix typo 2019-08-27 12:16:27 +03:00
gnome-shell-perf-tool.in perf-tool: Allow to run as a Wayland compositor 2020-01-27 13:43:06 +00:00
gnome-shell-plugin.c locatePointer: Add implementation in gnome-shell 2019-06-05 08:15:10 +00:00
gnome-shell-portal-helper.c build: Don't modify typelib search path in tools 2018-08-14 17:28:03 +00:00
gtkactionmuxer.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 22:37:37 +00:00
gtkactionmuxer.h Also update gtkaction* 2014-01-09 14:59:31 -05:00
gtkactionobservable.c Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobservable.h Update copy/paste code from upstream 2013-05-13 18:34:26 -04:00
gtkactionobserver.c Also update gtkaction* 2014-01-09 14:59:31 -05:00
gtkactionobserver.h Also update gtkaction* 2014-01-09 14:59:31 -05:00
main.c main: Stop owning the public org.freedesktop.Notifications name 2020-03-12 16:09:27 +00:00
meson.build Add small gnome-shell-extension-prefs script 2020-04-30 00:57:27 +02:00
org.gtk.Application.xml Generate GDBus proxy object for org.gtk.Application 2014-11-27 10:59:55 +00:00
run-js-test.c tests: Don't initialize Clutter 2019-08-27 15:30:51 +03:00
shell-action-modes.h Drop MESSAGE_TRAY action mode 2015-02-26 01:41:18 +01:00
shell-app-cache-private.h app-cache: add ShellAppCache for GAppInfo caching 2020-03-11 18:06:15 -07:00
shell-app-cache.c Revert "app-cache: Fix cache for folder translations" 2020-04-13 15:04:31 +00:00
shell-app-private.h shell: Use MetaStartupNotification 2018-11-23 13:58:35 +01:00
shell-app-system-private.h
shell-app-system.c app-cache: add ShellAppCache for GAppInfo caching 2020-03-11 18:06:15 -07:00
shell-app-system.h shell-app-system: Cache GAppInfos around 2019-01-26 22:55:31 +01:00
shell-app-usage.c cleanup: Use g_clear_handle_id() for g_source_remove() 2019-11-22 01:45:25 +01:00
shell-app-usage.h app-usage: Remove crufty old "context"s idea 2018-11-17 12:08:33 +00:00
shell-app.c shell-app: Use container widget for fallback X11 app icons 2020-04-06 15:00:05 +00:00
shell-app.h app: Remove :menu property 2019-02-06 18:29:15 +01:00
shell-blur-effect.c blur-effect: Handle failure of background blitting gracefully 2020-03-27 22:31:57 +00:00
shell-blur-effect.h blur-effect: Use sigma value instead of blur radius 2020-02-12 11:10:38 -03:00
shell-embedded-window-private.h
shell-embedded-window.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-embedded-window.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-global-private.h locatePointer: Add implementation in gnome-shell 2019-06-05 08:15:10 +00:00
shell-global.c shell: fix typo in comment 2020-02-26 19:00:05 -08:00
shell-global.h shell: Add API to access switcheroo-control D-Bus proxy 2019-12-13 00:44:28 +01:00
shell-glsl-effect.c Use paint and pick context to get framebuffer 2019-12-03 19:07:15 +00:00
shell-glsl-effect.h shell: Actually make GLSLEffect an effect 2019-07-29 17:51:14 +02:00
shell-gtk-embed.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 22:37:37 +00:00
shell-gtk-embed.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-invert-lightness-effect.c Use paint and pick context to get framebuffer 2019-12-03 19:07:15 +00:00
shell-invert-lightness-effect.h shell: Define COGL_ENABLE_EXPERIMENTAL_API and related defines globally 2014-08-07 14:49:54 -04:00
shell-keyring-prompt.c Ensure G_PARAM_STATIC_STRINGS for all properties 2019-07-30 13:58:44 +00:00
shell-keyring-prompt.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-mount-operation.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-mount-operation.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-network-agent.c shell/network-agent: Wrap nm_plugin_info_new_search_file() 2020-03-17 14:07:15 +00:00
shell-network-agent.h shell/network-agent: Wrap nm_plugin_info_new_search_file() 2020-03-17 14:07:15 +00:00
shell-perf-helper.c perf-helper: Remove unused atoms 2019-12-05 16:51:00 +01:00
shell-perf-log.c cleanup: Use g_clear_handle_id() for g_source_remove() 2019-11-22 01:45:25 +01:00
shell-perf-log.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-polkit-authentication-agent.c src: Stop using g_get_current_time() 2019-08-09 19:22:18 +00:00
shell-polkit-authentication-agent.h polkit: Port to G_DECLARE_FINAL_CLASS 2018-11-06 13:05:15 -02:00
shell-recorder-src.c cleanup: Use g_clear_handle_id() for g_source_remove() 2019-11-22 01:45:25 +01:00
shell-recorder-src.h
shell-recorder.c shell Always draw the cursor ourself when capturing stage 2020-04-29 12:38:01 +00:00
shell-recorder.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-screenshot.c shell Always draw the cursor ourself when capturing stage 2020-04-29 12:38:01 +00:00
shell-screenshot.h shell: Make screenshot API stream based 2019-11-06 22:45:22 +00:00
shell-secure-text-buffer.c shell: Don't use g_memmove() 2019-07-19 17:43:56 +00:00
shell-secure-text-buffer.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-stack.c shell/stack: Ignore hidden children for focus navigation 2020-02-24 12:29:44 +00:00
shell-stack.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-tray-icon.c Ensure G_PARAM_STATIC_STRINGS for all properties 2019-07-30 13:58:44 +00:00
shell-tray-icon.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-tray-manager.c shell/tray-manager: Delay managing screen if necessary 2020-03-06 18:45:21 +00:00
shell-tray-manager.h shell/tray-manager: Allow to unmanage screen 2020-03-06 18:45:21 +00:00
shell-util.c shell/util: Add touch_file_async() helper 2020-03-25 20:03:01 +00:00
shell-util.h shell/util: Add touch_file_async() helper 2020-03-25 20:03:01 +00:00
shell-window-tracker-private.h
shell-window-tracker.c shell: Ignore non-toplevels for ShellWindowTracker::tracked-windows-changed 2019-08-21 16:53:36 +00:00
shell-window-tracker.h shell: Hide/drop unused public API 2018-11-23 13:58:35 +01:00
shell-wm-private.h ui: Add InhibitShortcutsDialog 2017-08-02 11:27:42 +01:00
shell-wm.c ui: Add InhibitShortcutsDialog 2017-08-02 11:27:42 +01:00
shell-wm.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00