[gnome-shell] js/ui: Use Clutter.OffscreenRedirect.ON_IDLE



commit c0c027c608d0aa1c547a2a82bd3ce6b84bb83b83
Author: Daniel van Vugt <daniel van vugt canonical com>
Date:   Wed Feb 19 19:09:07 2020 +0800

    js/ui: Use Clutter.OffscreenRedirect.ON_IDLE
    
    To bypass offscreening in cases where continuous animation is happening.
    Offscreening is slower in such cases so this reduces the render time of
    animations within offscreenable actors.
    
    On an i7-7700 this reduces the render time of boxpointers for example by
    25-30%.
    
    https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1025

 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 03cb4a567f..940f6aa16b 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.ALWAYS);
+        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._arrowSide = arrowSide;
         this._userArrowSide = arrowSide;
diff --git a/js/ui/dash.js b/js/ui/dash.js
index 6eb71e73bd..9281046378 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.ALWAYS);
+        this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._showAppsIcon = new ShowAppsIcon();
         this._showAppsIcon.show(false);
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 62a3c0917a..45d12340bc 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.ALWAYS);
+        this._searchEntry.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
         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 eb3a195996..fd499f8633 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -788,7 +788,7 @@ class Panel extends St.Widget {
         super._init({ name: 'panel',
                       reactive: true });
 
-        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
+        this.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
 
         this._sessionStyle = null;
 
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 075fbb15bb..b1b0806163 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.ALWAYS);
+        actorClone.set_offscreen_redirect(Clutter.OffscreenRedirect.ON_IDLE);
         actorClone.set_position(oldFrameRect.x, oldFrameRect.y);
         actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
         Main.uiGroup.add_actor(actorClone);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]