panel: Update window section items on title changes

We currently only update the windows section when either the focus
app changes, or when the app's windows change (that is, a window is
opened or closed). This allows the menu item labels to become stale
if the window title changes after one of those events (for example
when switching tabs).

Fix this by updating menu items when the corresponding window
title changes.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1830
This commit is contained in:
Florian Müllner 2019-10-28 12:32:31 +01:00
parent 7d34dee77f
commit 03219f745d

View File

@ -170,9 +170,13 @@ class AppMenu extends PopupMenu.PopupMenu {
let windows = this._app.get_windows(); let windows = this._app.get_windows();
windows.forEach(window => { windows.forEach(window => {
let title = window.title || this._app.get_name(); let title = window.title || this._app.get_name();
this._windowSection.addAction(title, event => { let item = this._windowSection.addAction(title, event => {
Main.activateWindow(window, event.get_time()); Main.activateWindow(window, event.get_time());
}); });
let id = window.connect('notify::title', () => {
item.label.text = window.title || this._app.get_name();
});
item.connect('destroy', () => window.disconnect(id));
}); });
} }
} }