[gnome-shell/T29763: 84/249] viewSelector: Don't hide pages



commit 22fc34f57f4463220d18efe7686cad9920e1783d
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Tue Nov 5 16:05:43 2019 -0300

    viewSelector: Don't hide pages
    
    This is necessary to allow the *parent* container to
    have a valid allocation.
    
    https://phabricator.endlessm.com/T28165

 js/ui/viewSelector.js | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
---
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index c73424e509..02720172c2 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -659,10 +659,9 @@ var ViewSelector = GObject.registerClass({
 
         let overviewViewsClone = new ViewsClone(this, this._viewsDisplay, true);
         Main.overview.setViewsClone(overviewViewsClone);
-        this._appsPage.bind_property('visible',
-                                     overviewViewsClone, 'visible',
-                                     GObject.BindingFlags.SYNC_CREATE |
-                                     GObject.BindingFlags.INVERT_BOOLEAN);
+        this._appsPage.connect('notify::opacity', () => {
+            overviewViewsClone.visible = this._appsPage.opacity != 255;
+        });
     }
 
     _onEmptySpaceClicked() {
@@ -714,7 +713,10 @@ var ViewSelector = GObject.registerClass({
     _addPage(actor, name, a11yIcon, params) {
         params = Params.parse(params, { a11yFocus: null });
 
-        let page = new St.Bin({ child: actor });
+        let page = new St.Bin({
+            child: actor,
+            opacity: 0,
+        });
 
         if (params.a11yFocus) {
             Main.ctrlAltTabManager.addGroup(params.a11yFocus, name, a11yIcon);
@@ -724,7 +726,6 @@ var ViewSelector = GObject.registerClass({
                 focusCallback: () => this._a11yFocusPage(page),
             });
         }
-        page.hide();
         this.add_actor(page);
         return page;
     }
@@ -749,12 +750,10 @@ var ViewSelector = GObject.registerClass({
 
     _animateIn(oldPage) {
         if (oldPage)
-            oldPage.hide();
+            oldPage.opacity = 0;
 
         this.emit('page-empty');
 
-        this._activePage.show();
-
         if (this._activePage == this._appsPage && oldPage == this._workspacesPage) {
             // Restore opacity, in case we animated via _fadePageOut
             this._activePage.opacity = 255;


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