diff options
author | Carlos Soriano <carlos.soriano89@gmail.com> | 2014-11-11 16:30:11 +0100 |
---|---|---|
committer | Carlos Soriano <carlos.soriano89@gmail.com> | 2014-11-11 16:30:11 +0100 |
commit | 80d754916db5eb7206d8471a14a730b0743d0c8e (patch) | |
tree | be738b15b0fe2560859749c38b963fc5a9176b3c | |
parent | 26fd0b7e7c1dff552b1ee544f31802946e577475 (diff) | |
download | gnome-shell-wip/sassWithSomeFixes.tar.gz |
panelMenu: Don't fade appMenuButton icon and put it on the sidewip/sassWithSomeFixes
Design request, don't fade the icon of the appMenuButton and put it on
the side instead of overlaping with the text.
-rw-r--r-- | js/ui/panel.js | 74 |
1 files changed, 5 insertions, 69 deletions
diff --git a/js/ui/panel.js b/js/ui/panel.js index b259c1a08..6da5002ba 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -189,11 +189,8 @@ const AppMenuButton = new Lang.Class({ this.actor.bind_property("reactive", this.actor, "can-focus", 0); this.actor.reactive = false; - this._container = new Shell.GenericContainer(); + this._container = St.BoxLayout({ style_class: 'panel-status-menu-box' }); bin.set_child(this._container); - this._container.connect('get-preferred-width', Lang.bind(this, this._getContentPreferredWidth)); - this._container.connect('get-preferred-height', Lang.bind(this, this._getContentPreferredHeight)); - this._container.connect('allocate', Lang.bind(this, this._contentAllocate)); let textureCache = St.TextureCache.get_default(); textureCache.connect('icon-theme-changed', @@ -206,14 +203,11 @@ const AppMenuButton = new Lang.Class({ Lang.bind(this, this._updateIconBoxClip)); this._container.add_actor(this._iconBox); - this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); - this._container.add_actor(this._hbox); - this._label = new TextShadower(); this._label.actor.y_align = Clutter.ActorAlign.CENTER; - this._hbox.add_actor(this._label.actor); + this._container.add_actor(this._label.actor); this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM); - this._hbox.add_actor(this._arrow); + this._container.add_actor(this._arrow); this._iconBottomClip = 0; @@ -277,7 +271,7 @@ const AppMenuButton = new Lang.Class({ return; this._spinnerIcon = icon; this._spinner = new Animation.AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE); - this._hbox.add_actor(this._spinner.actor); + this._container.add_actor(this._spinner.actor); this._spinner.actor.hide(); }, @@ -291,7 +285,7 @@ const AppMenuButton = new Lang.Class({ if (!this._targetApp) return; - let icon = this._targetApp.get_faded_icon(2 * PANEL_ICON_SIZE, this._iconBox.text_direction); + let icon = this._targetApp.create_icon_texture(2 * PANEL_ICON_SIZE); this._iconBox.set_child(icon); }, @@ -344,64 +338,6 @@ const AppMenuButton = new Lang.Class({ this._spinner.actor.show(); }, - _getContentPreferredWidth: function(actor, forHeight, alloc) { - let [minSize, naturalSize] = this._iconBox.get_preferred_width(forHeight); - alloc.min_size = minSize; - alloc.natural_size = naturalSize; - [minSize, naturalSize] = this._hbox.get_preferred_width(forHeight); - alloc.min_size = alloc.min_size + Math.max(0, minSize - Math.floor(alloc.min_size / 2)); - alloc.natural_size = alloc.natural_size + Math.max(0, naturalSize - Math.floor(alloc.natural_size / 2)); - }, - - _getContentPreferredHeight: function(actor, forWidth, alloc) { - let [minSize, naturalSize] = this._iconBox.get_preferred_height(forWidth); - alloc.min_size = minSize; - alloc.natural_size = naturalSize; - [minSize, naturalSize] = this._hbox.get_preferred_height(forWidth); - if (minSize > alloc.min_size) - alloc.min_size = minSize; - if (naturalSize > alloc.natural_size) - alloc.natural_size = naturalSize; - }, - - _contentAllocate: function(actor, box, flags) { - let allocWidth = box.x2 - box.x1; - let allocHeight = box.y2 - box.y1; - let childBox = new Clutter.ActorBox(); - - let [minWidth, minHeight, naturalWidth, naturalHeight] = this._iconBox.get_preferred_size(); - - let direction = this.actor.get_text_direction(); - - let yPadding = Math.floor(Math.max(0, allocHeight - naturalHeight) / 2); - childBox.y1 = yPadding; - childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight); - if (direction == Clutter.TextDirection.LTR) { - childBox.x1 = 0; - childBox.x2 = childBox.x1 + Math.min(naturalWidth, allocWidth); - } else { - childBox.x1 = Math.max(0, allocWidth - naturalWidth); - childBox.x2 = allocWidth; - } - this._iconBox.allocate(childBox, flags); - - let iconWidth = childBox.x2 - childBox.x1; - - [minWidth, naturalWidth] = this._hbox.get_preferred_width(-1); - - childBox.y1 = 0; - childBox.y2 = allocHeight; - - if (direction == Clutter.TextDirection.LTR) { - childBox.x1 = Math.floor(iconWidth / 2); - childBox.x2 = Math.min(childBox.x1 + naturalWidth, allocWidth); - } else { - childBox.x2 = allocWidth - Math.floor(iconWidth / 2); - childBox.x1 = Math.max(0, childBox.x2 - naturalWidth); - } - this._hbox.allocate(childBox, flags); - }, - _onAppStateChanged: function(appSys, app) { let state = app.state; if (state != Shell.AppState.STARTING) { |