From b18c239240e57151cd4d7d835d7062be84d49e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 16 May 2013 19:35:12 +0200 Subject: [PATCH] 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 file changed, 8 insertions(+), 6 deletions(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index e46897fdb..0a9f3c128 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);