window-list: Update icon on app changes

We currently assume that the application associated with a particular
window is fixed. While this holds true for almost every application,
there are some cases of multi-app-packages like LibreOffice where
windows may change the properties used for application matching at
runtime. Catch those cases to make sure we display the correct icon
when the window shifts applications.

https://bugzilla.gnome.org/show_bug.cgi?id=771731
This commit is contained in:
Florian Müllner
2016-09-20 17:56:19 +02:00
parent 7074217b7c
commit f99b42e732

View File

@@ -152,6 +152,12 @@ const WindowTitle = new Lang.Class({
this._iconThemeChangedId =
this._textureCache.connect('icon-theme-changed',
Lang.bind(this, this._updateIcon));
this._notifyWmClass =
this._metaWindow.connect('notify::wm-class',
Lang.bind(this, this._updateIcon));
this._notifyAppId =
this._metaWindow.connect('notify::gtk-application-id',
Lang.bind(this, this._updateIcon));
this._updateIcon();
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
@@ -193,6 +199,8 @@ const WindowTitle = new Lang.Class({
this._textureCache.disconnect(this._iconThemeChangedId);
this._metaWindow.disconnect(this._notifyTitleId);
this._metaWindow.disconnect(this._notifyMinimizedId);
this._metaWindow.disconnect(this._notifyWmClass);
this._metaWindow.disconnect(this._notifyAppId);
}
});