From 04da29c9390cbbc1cfe6653ff1afcc79d68ed000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 30 Oct 2012 18:30:21 +0100 Subject: [PATCH] appMenu: Update on icon theme changes While we recreate icons on style changes elsewhere, the faded icon in the application menu will stick around after icon theme changes until another application is focused. https://bugzilla.gnome.org/show_bug.cgi?id=687224 --- js/ui/panel.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/js/ui/panel.js b/js/ui/panel.js index 29165f6f1..9f3696346 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js @@ -247,6 +247,10 @@ const AppMenuButton = new Lang.Class({ 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', + Lang.bind(this, this._onIconThemeChanged)); + this._iconBox = new Shell.Slicer({ name: 'appMenuIcon' }); this._iconBox.connect('style-changed', Lang.bind(this, this._onIconBoxStyleChanged)); @@ -332,6 +336,15 @@ const AppMenuButton = new Lang.Class({ this._updateIconBoxClip(); }, + _onIconThemeChanged: function() { + if (this._iconBox.child == null) + return; + + this._iconBox.child.destroy(); + let icon = this._targetApp.get_faded_icon(2 * PANEL_ICON_SIZE); + this._iconBox.set_child(icon); + }, + _updateIconBoxClip: function() { let allocation = this._iconBox.allocation; if (this._iconBottomClip > 0)