diff --git a/js/ui/altTab.js b/js/ui/altTab.js index 736674e92..47ab84dc7 100644 --- a/js/ui/altTab.js +++ b/js/ui/altTab.js @@ -587,7 +587,7 @@ SwitcherList.prototype = { this._rightArrow.opacity = this._rightGradient.opacity; }, - addItem : function(item) { + addItem : function(item, label) { let bbox = new St.Button({ style_class: 'item-box', reactive: true }); @@ -598,6 +598,8 @@ SwitcherList.prototype = { bbox.connect('clicked', Lang.bind(this, function() { this._onItemClicked(n); })); bbox.connect('enter-event', Lang.bind(this, function() { this._onItemEnter(n); })); + bbox.label_actor = label; + this._items.push(bbox); }, @@ -983,7 +985,7 @@ AppSwitcher.prototype = { _addIcon : function(appIcon) { this.icons.push(appIcon); - this.addItem(appIcon.actor); + this.addItem(appIcon.actor, appIcon.label); let n = this._arrows.length; let arrow = new St.DrawingArea({ style_class: 'switcher-arrow' }); @@ -1053,9 +1055,12 @@ ThumbnailList.prototype = { this._labels.push(bin); bin.add_actor(name); box.add_actor(bin); + + this.addItem(box, name); + } else { + this.addItem(box, null); } - this.addItem(box); } }, diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index cd502ef71..1dabc2cd5 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -434,6 +434,8 @@ AppWellIcon.prototype = { this.icon = new AppIcon(app, iconParams); this.actor.set_child(this.icon.actor); + this.actor.label_actor = this.icon.label; + this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress)); this.actor.connect('clicked', Lang.bind(this, this._onClicked)); this.actor.connect('popup-menu', Lang.bind(this, this._onKeyboardPopupMenu)); diff --git a/js/ui/ctrlAltTab.js b/js/ui/ctrlAltTab.js index 65b0a8046..cf76dfbaf 100644 --- a/js/ui/ctrlAltTab.js +++ b/js/ui/ctrlAltTab.js @@ -323,6 +323,6 @@ CtrlAltTabSwitcher.prototype = { let text = new St.Label({ text: item.name }); box.add(text, { x_fill: false }); - this.addItem(box); + this.addItem(box, text); } }; diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js index c6deb1904..c2c362079 100644 --- a/js/ui/iconGrid.js +++ b/js/ui/iconGrid.js @@ -42,10 +42,10 @@ BaseIcon.prototype = { box.add_actor(this._iconBin); if (params.showLabel) { - this._name = new St.Label({ text: label }); - box.add_actor(this._name); + this.label = new St.Label({ text: label }); + box.add_actor(this.label); } else { - this._name = null; + this.label = null; } if (params.createIcon) @@ -67,8 +67,8 @@ BaseIcon.prototype = { let childBox = new Clutter.ActorBox(); - if (this._name) { - let [labelMinHeight, labelNatHeight] = this._name.get_preferred_height(-1); + if (this.label) { + let [labelMinHeight, labelNatHeight] = this.label.get_preferred_height(-1); preferredHeight += this._spacing + labelNatHeight; let labelHeight = availHeight >= preferredHeight ? labelNatHeight @@ -79,7 +79,7 @@ BaseIcon.prototype = { childBox.x2 = availWidth; childBox.y1 = iconSize + this._spacing; childBox.y2 = childBox.y1 + labelHeight; - this._name.allocate(childBox, flags); + this.label.allocate(childBox, flags); } childBox.x1 = Math.floor((availWidth - iconNatWidth) / 2); @@ -98,8 +98,8 @@ BaseIcon.prototype = { alloc.min_size = iconMinHeight; alloc.natural_size = iconNatHeight; - if (this._name) { - let [labelMinHeight, labelNatHeight] = this._name.get_preferred_height(forWidth); + if (this.label) { + let [labelMinHeight, labelNatHeight] = this.label.get_preferred_height(forWidth); alloc.min_size += this._spacing + labelMinHeight; alloc.natural_size += this._spacing + labelNatHeight; } diff --git a/js/ui/searchDisplay.js b/js/ui/searchDisplay.js index 7b0a3d114..6de542d0b 100644 --- a/js/ui/searchDisplay.js +++ b/js/ui/searchDisplay.js @@ -39,6 +39,7 @@ SearchResult.prototype = { let icon = new IconGrid.BaseIcon(this.metaInfo['name'], { createIcon: this.metaInfo['createIcon'] }); content.set_child(icon.actor); + this.actor.label_actor = icon.label; } this._content = content; this.actor.set_child(content); @@ -259,6 +260,7 @@ SearchResults.prototype = { let title = new St.Label({ text: provider.name, style_class: 'dash-search-button-label' }); + button.label_actor = title; bin.set_child(title); button.set_child(bin); provider.actor = button;