gnome-shell/src
Cosimo Cecchi d53bd98532 StWidget: don't forget to invalidate the paint state if not on stage
If the actor is not on the stage yet (i.e. does not have a theme
node), but has a paint state cached, we currently fail to invalidate
it, which will lead to the actor painting with old contents once it
gets onto the stage.

This commit fixes the issue by changing our invalidation strategy;
previously we were looking at the widget's own theme node to determine
if it should be invalidated or not.
Now we look at the theme nodes of our cached paint states. When the
widget is mapped on stage, those are the same as the widget's own
theme node, but when the widget is not on the stage, we'll still be
able to invalidate them.

As part of this, we move the invalidation API to StThemeNodePaintState,
which is a more natural place for our use case.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/314

(cherry picked from commit 6743c18fdf)
2019-01-11 11:30:26 +00:00
..
calendar-server build: Support the meson build system 2017-07-20 00:20:54 +02:00
hotplug-sniffer build: Support the meson build system 2017-07-20 00:20:54 +02:00
st StWidget: don't forget to invalidate the paint state if not on stage 2019-01-11 11:30:26 +00:00
tray build: Support the meson build system 2017-07-20 00:20:54 +02: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.c helpers: Destroy GjsContext before exit 2016-12-07 11:34:15 -08:00
gnome-shell-extension-tool.in build: Support the meson build system 2017-07-20 00:20:54 +02:00
gnome-shell-perf-tool.in build: Support the meson build system 2017-07-20 00:20:54 +02:00
gnome-shell-plugin.c ui: Add InhibitShortcutsDialog 2017-08-02 11:27:42 +01:00
gnome-shell-portal-helper.c helpers: Destroy GjsContext before exit 2016-12-07 11:34:15 -08:00
gtkactionmuxer.c build: Fix build with clang -Werror 2016-02-26 02:06:55 +08: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
gtkmenutracker.c menutracker: Don't shadow existing variables 2015-09-23 21:32:49 +02:00
gtkmenutracker.h Changed obsolete FSF postal address. 2014-01-08 04:35:14 +07:00
gtkmenutrackeritem.c menutracker: Fix a small memory leak 2018-03-02 19:43:45 +00:00
gtkmenutrackeritem.h gtkmenutracker: Update from GTK+ 2014-01-09 14:47:11 -05:00
main.c main: Stop acquiring caribou name 2018-02-05 17:46:57 +01:00
meson.build network: port to libnm 2018-01-12 11:48:49 +01: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 Don't set clutters 'window-scaling-factor' property 2017-04-07 22:30:35 +08:00
shell-action-modes.h Drop MESSAGE_TRAY action mode 2015-02-26 01:41:18 +01:00
shell-app-private.h appDisplay: Use the desktop file index for app searching 2013-11-14 14:28:52 -05:00
shell-app-system-private.h apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
shell-app-system.c Properly detect changes in .desktop files 2017-01-23 17:25:39 -06:00
shell-app-system.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-app-usage.c shell: Don't avoid parameter list 2015-09-23 21:32:50 +02:00
shell-app-usage.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-app.c shell-app: Don't transition to STOPPED while still in the STARTING state 2017-09-29 18:10:23 +01:00
shell-app.h shell-app: Add "discrete_gpu" option when launching apps 2016-10-21 19:26:49 +02:00
shell-embedded-window-private.h shell-embedded-window: Remove hacks for old and fixed Clutter bug 2012-07-13 17:28:50 -04:00
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-generic-container.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-generic-container.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-global-private.h main: Destroy GjsContext before exit 2016-12-07 11:34:15 -08:00
shell-global.c shell-global: Do not deal with allocated strings as const char 2018-03-14 13:30:47 +00:00
shell-global.h shell: Remove gdk_screen property/getter 2018-02-05 17:46:57 +01:00
shell-glsl-quad.c build: Fix build with clang -Werror 2016-02-26 02:06:55 +08:00
shell-glsl-quad.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-gtk-embed.c gtk-embed: ensure we only listen for window-created events once 2017-09-15 15:32:46 -04:00
shell-gtk-embed.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-invert-lightness-effect.c shell-invert-lightness-effect: Fix Cogl deprecations 2015-02-20 17:40:46 -08: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 shell: Port to GTask 2015-10-15 22:59:49 +02:00
shell-keyring-prompt.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-menu-tracker.c Update (allow-none) annotations 2014-05-28 22:01:55 +02:00
shell-menu-tracker.h Changed obsolete FSF postal address. 2014-01-08 04:35:14 +07: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 network: port to libnm 2018-01-12 11:48:49 +01:00
shell-network-agent.h network: port to libnm 2018-01-12 11:48:49 +01:00
shell-perf-helper.c shell: Don't mix declarations and code 2015-09-23 21:32:50 +02:00
shell-perf-log.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-perf-log.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-polkit-authentication-agent.c shell: Fix crash in polkit agent 2015-11-10 11:56:37 +01:00
shell-polkit-authentication-agent.h Rearchitect the Shell to have a components system 2012-09-04 18:42:44 -03:00
shell-recorder-src.c recorder-src: Rewrite switch statement 2015-09-23 21:32:49 +02:00
shell-recorder-src.h Add emacs modelines to all .c and .h files that were missing them 2009-10-27 11:27:45 -04:00
shell-recorder.c shell-recorder: save cursor's image hot x/y coordinates 2018-02-07 13:16:36 +01:00
shell-recorder.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-screenshot.c shell-screenshot: Avoid a crash when the cursor texture is NULL 2016-09-19 22:41:51 +02:00
shell-screenshot.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-secure-text-buffer.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-secure-text-buffer.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-stack.c shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-stack.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-tray-icon.c systray: Bail out if the plug window is gone 2016-09-08 12:08:02 +02: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: Disconnect theme_widget signals on finalize 2017-08-20 18:03:32 +02:00
shell-tray-manager.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02:00
shell-util.c shell-util: Fix a typo 2017-07-14 23:38:52 +02:00
shell-util.h util: Wrap g_regex_escape_string() 2017-07-14 22:40:25 +02:00
shell-window-tracker-private.h apps: Ensure running apps override new .desktop file data 2011-09-05 17:29:41 -04:00
shell-window-tracker.c window-tracker: use generic meta_window_get_sandboxed_app_id 2017-10-21 13:37:13 -05:00
shell-window-tracker.h shell: Use G_DECLARE_*_TYPE macros 2015-10-15 22:58:28 +02: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