[gnome-shell] appDisplay: Also account for folder popup's close buttons



commit 0eba0f8dd3056c79c000826b5fa32622708bd827
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu May 16 19:35:12 2013 +0200

    appDisplay: Also account for folder popup's close buttons
    
    As the close button of folder popups overlaps at the top, it ends
    up being cut off if the folder is located at the very top of the
    view. Fix this glitch by taking the button's overlap into account
    in that case.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=694371

 js/ui/appDisplay.js |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 097c8e5..7f92d12 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -598,9 +598,11 @@ const FolderIcon = new Lang.Class({
         // Position the popup above or below the source icon
         if (side == St.Side.BOTTOM) {
             this._popup.actor.show();
+            let closeButtonOffset = -this._popup.closeButton.translation_y;
             let y = this.actor.y - this._popup.actor.height;
-            this._popup.parentOffset = y < 0 ? -y : 0;
-            this._popup.actor.y = Math.max(y, 0);
+            let yWithButton = y - closeButtonOffset;
+            this._popup.parentOffset = yWithButton < 0 ? -yWithButton : 0;
+            this._popup.actor.y = Math.max(y, closeButtonOffset);
             this._popup.actor.hide();
         } else {
             this._popup.actor.y = this.actor.y + this.actor.height;
@@ -647,11 +649,11 @@ const AppFolderPopup = new Lang.Class({
         this.actor.add_actor(this._boxPointer.actor);
         this._boxPointer.bin.set_child(this._view.actor);
 
-        let closeButton = Util.makeCloseButton();
-        closeButton.connect('clicked', Lang.bind(this, this.popdown));
-        this.actor.add_actor(closeButton);
+        this.closeButton = Util.makeCloseButton();
+        this.closeButton.connect('clicked', Lang.bind(this, this.popdown));
+        this.actor.add_actor(this.closeButton);
 
-        this._boxPointer.actor.bind_property('opacity', closeButton, 'opacity',
+        this._boxPointer.actor.bind_property('opacity', this.closeButton, 'opacity',
                                              GObject.BindingFlags.SYNC_CREATE);
 
         global.focus_manager.add_group(this.actor);


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