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:
parent
dc4b8c876e
commit
60d1f7797c
@ -200,6 +200,10 @@ const WindowMenuManager = new Lang.Class({
|
|||||||
menu.connect('activate', function() {
|
menu.connect('activate', function() {
|
||||||
window.check_alive(global.get_current_time());
|
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_size(rect.width, rect.height);
|
||||||
this._sourceActor.set_position(rect.x, rect.y);
|
this._sourceActor.set_position(rect.x, rect.y);
|
||||||
@ -213,6 +217,7 @@ const WindowMenuManager = new Lang.Class({
|
|||||||
|
|
||||||
this._sourceActor.hide();
|
this._sourceActor.hide();
|
||||||
menu.destroy();
|
menu.destroy();
|
||||||
|
window.disconnect(destroyId);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user