windowMenu: Close when corresponding window goes away

The menu is clearly associated with a particular window, so keeping
it around when the window is gone doesn't make sense - in case of
the window menu, it is actually harmful as every action will act on
the invalidated window and result in a crash. So just dismiss the
menu when the menu is unmanaged.

https://bugzilla.gnome.org/show_bug.cgi?id=749529
This commit is contained in:
Florian Müllner 2015-05-21 18:14:51 +02:00
parent dc4b8c876e
commit 60d1f7797c

View File

@ -200,6 +200,10 @@ const WindowMenuManager = new Lang.Class({
menu.connect('activate', function() {
window.check_alive(global.get_current_time());
});
let destroyId = window.connect('unmanaged',
function() {
menu.close();
});
this._sourceActor.set_size(rect.width, rect.height);
this._sourceActor.set_position(rect.x, rect.y);
@ -213,6 +217,7 @@ const WindowMenuManager = new Lang.Class({
this._sourceActor.hide();
menu.destroy();
window.disconnect(destroyId);
}));
}
});