From 69afe7785ddb2c4ac170db3498d9994cf3ffcaf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 22 Jan 2016 15:11:05 +0100 Subject: [PATCH] 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); },