From c773c8c162eba5abd8551a1718b8de40d3ab8a49 Mon Sep 17 00:00:00 2001 From: Daniel van Vugt Date: Wed, 26 Feb 2020 11:53:40 +0800 Subject: [PATCH] Revert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE" This reverts commit c0c027c608d0aa1c547a2a82bd3ce6b84bb83b83. Because for some reason animating external opacity and position is still incurring internal repaints, which disables offscreening and makes fading of overlapping actors look wrong. `ON_IDLE` should be fixed in mutter before it is used (in boxpointer at least) again. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2270 --- js/ui/boxpointer.js | 2 +- js/ui/dash.js | 2 +- js/ui/overview.js | 2 +- js/ui/panel.js | 2 +- js/ui/windowManager.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js index 940f6aa16..03cb4a567 100644 --- a/js/ui/boxpointer.js +++ b/js/ui/boxpointer.js @@ -33,7 +33,7 @@ var BoxPointer = GObject.registerClass({ _init(arrowSide, binProperties) { super._init(); - this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._arrowSide = arrowSide; this._userArrowSide = arrowSide; diff --git a/js/ui/dash.js b/js/ui/dash.js index 928104637..6eb71e73b 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -353,7 +353,7 @@ var Dash = GObject.registerClass({ clip_to_allocation: true }); this._box._delegate = this; this._container.add_actor(this._box); - this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._showAppsIcon = new ShowAppsIcon(); this._showAppsIcon.show(false); diff --git a/js/ui/overview.js b/js/ui/overview.js index 4b30b6f87..2e6b93da6 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -108,7 +108,7 @@ class OverviewActor extends St.BoxLayout { track_hover: true, can_focus: true, }); - this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); let searchEntryBin = new St.Bin({ child: this._searchEntry, x_align: Clutter.ActorAlign.CENTER, diff --git a/js/ui/panel.js b/js/ui/panel.js index df8fe1160..ec39cebb6 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -794,7 +794,7 @@ class Panel extends St.Widget { super._init({ name: 'panel', reactive: true }); - this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); this._sessionStyle = null; diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js index b1b080616..075fbb15b 100644 --- a/js/ui/windowManager.js +++ b/js/ui/windowManager.js @@ -1256,7 +1256,7 @@ var WindowManager = class { // while actor updates are frozen. let actorContent = Shell.util_get_content_for_window_actor(actor, oldFrameRect); let actorClone = new St.Widget({ content: actorContent }); - actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE); + actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); actorClone.set_position(oldFrameRect.x, oldFrameRect.y); actorClone.set_size(oldFrameRect.width, oldFrameRect.height); Main.uiGroup.add_actor(actorClone);