[gnome-shell/wip/fmuellner/remote-menu-icons: 67/67] remoteMenu: Support icons in app-menu
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/fmuellner/remote-menu-icons: 67/67] remoteMenu: Support icons in app-menu
- Date: Sat, 14 Apr 2018 09:02:58 +0000 (UTC)
commit 69afe7785ddb2c4ac170db3498d9994cf3ffcaf0
Author: Florian Müllner <fmuellner gnome org>
Date: Fri Jan 22 15:11:05 2016 +0100
remoteMenu: Support icons in app-menu
The HIG discourages the use of icons in menus except for "noun" items
(files, bookmarks, ...). While those should be rarely used in the
application menu, it still makes sense to support them in the few
cases where they are used.
https://bugzilla.gnome.org/show_bug.cgi?id=760985
js/ui/remoteMenu.js | 10 ++++++++++
1 file changed, 10 insertions(+)
---
diff --git a/js/ui/remoteMenu.js b/js/ui/remoteMenu.js
index 848ab7537..78a2e2934 100644
--- a/js/ui/remoteMenu.js
+++ b/js/ui/remoteMenu.js
@@ -119,6 +119,9 @@ var RemoteMenuItemMapper = new Lang.Class({
this._trackerItem = trackerItem;
this.menuItem = new PopupMenu.PopupBaseMenuItem();
+ this._icon = new St.Icon({ style_class: 'popup-menu-icon' });
+ this.menuItem.actor.add_child(this._icon);
+
this._label = new St.Label();
this.menuItem.actor.add_child(this._label);
this.menuItem.actor.label_actor = this._label;
@@ -129,11 +132,13 @@ var RemoteMenuItemMapper = new Lang.Class({
this._trackerItem.bind_property('visible', this.menuItem.actor, 'visible',
GObject.BindingFlags.SYNC_CREATE);
+ this._trackerItem.connect('notify::icon', this._updateIcon.bind(this));
this._trackerItem.connect('notify::label', this._updateLabel.bind(this));
this._trackerItem.connect('notify::sensitive', this._updateSensitivity.bind(this));
this._trackerItem.connect('notify::role', this._updateRole.bind(this));
this._trackerItem.connect('notify::toggled', this._updateDecoration.bind(this));
+ this._updateIcon();
this._updateLabel();
this._updateSensitivity();
this._updateRole();
@@ -143,6 +148,11 @@ var RemoteMenuItemMapper = new Lang.Class({
});
},
+ _updateIcon() {
+ this._icon.gicon = this._trackerItem.icon;
+ this._icon.visible = (this._icon.gicon != null);
+ },
+
_updateLabel() {
this._label.text = stripMnemonics(this._trackerItem.label);
},
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]