[gnome-shell/wip/paging-release: 45/74] testing



commit 8a134cfb1303438c82fadbe90d3887ad3a0022b9
Author: Carlos Soriano <carlos soriano89 gmail com>
Date:   Fri Jul 19 11:08:54 2013 +0200

    testing

 js/ui/appDisplay.js |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index be2f1c8..1aaaa14 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -1290,7 +1290,10 @@ const FolderIcon = new Lang.Class({
                                      y_fill: true });
         this.actor._delegate = this;
         this._parentView = parentView;
-
+        // when changing screen resolution or during clutter false allocations
+        // we have to tell folder view that the calculated values of boxpointer arrow side, position, etc 
+        // are not correct (since the allocated size of pagination changed)
+        // For that problem we calculate everything again and apply it maintaining current popup.
         this.invalidatePopUp = false;
         this._boxPointerOffsets = {};
         
@@ -1326,7 +1329,7 @@ const FolderIcon = new Lang.Class({
     _updatePopupPosition: function() {
         if(this._popup) {
             // Position the popup above or below the source icon
-            if (this._side == St.Side.BOTTOM) {
+            if (this._boxPointerArrowside == St.Side.BOTTOM) {
                 let closeButtonOffset = -this._popup.closeButton.translation_y;
                 // FLORIAN REVIEW
                 // We have to use this function, since this._popup.actor.height not always return a good 
value (32 px??)
@@ -1359,7 +1362,7 @@ const FolderIcon = new Lang.Class({
     },
 
     makeSpaceForPopUp: function() {
-        this._parentView.makeSpaceForPopUp(this, this._side, this.view.nRowsDisplayedAtOnce());
+        this._parentView.makeSpaceForPopUp(this, this._boxPointerArrowside, 
this.view.nRowsDisplayedAtOnce());
     },
     
     returnSpaceToOriginalPosition: function() {
@@ -1370,27 +1373,26 @@ const FolderIcon = new Lang.Class({
         this._popup.popup();
     },
     
+    _calculateBoxPointerArrowSide: function() {
+        let absoluteActorYPosition = this.actor.get_transformed_position()[1];
+        let spaceTop = absoluteActorYPosition;
+        let spaceBottom = this.actor.get_stage().height - (absoluteActorYPosition + this.actor.height);
+        return spaceTop > spaceBottom ? St.Side.BOTTOM : St.Side.TOP;
+    },
+    
     _ensurePopup: function() {
         if(this._popup && !this.invalidatePopUp){
             this.makeSpaceForPopUp();
             return;
         } else {
-            if(this.invalidatePopUp)
-                global.log("######## INVALIDATE ######");
             
-            let absoluteActorYPosition = this.actor.get_transformed_position()[1];
-            let spaceTop = absoluteActorYPosition;
-            let spaceBottom = this.actor.get_stage().height - (absoluteActorYPosition + this.actor.height);
-            this._side = spaceTop > spaceBottom ? St.Side.BOTTOM : St.Side.TOP;
-            global.log("this._side " + this._side);
+            this._boxPointerArrowside = this._calculateBoxPointerArrowSide();
             let firstCreationPopup = this._popup ? false : true;
             if(!this._popup) {
-                this._popup = new AppFolderPopup(this, this._side);
-                global.log("after appfolderpopup creation0");
+                this._popup = new AppFolderPopup(this, this._boxPointerArrowside);
                 this._parentView.addFolderPopup(this._popup);
-                global.log("popup has parent?");
             } else
-                this._popup.updateBoxPointer(this._side);
+                this._popup.updateBoxPointer(this._boxPointerArrowside);
             // FLORIAN REVIEW
             /**
              * Why we need that: AppDiplay update width for the spacing for all


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