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



commit b18c239240e57151cd4d7d835d7062be84d49e6e
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 e46897f..0a9f3c1 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -579,9 +579,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;
@@ -628,11 +630,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]