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 0732e1426a
commit 6cfcfc72cc

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));
}); });
} }
} }