keyboard: Unset current page when it gets destroyed
The current page is going to be destroyed as part of _onKeyboardGroupsChanged cleanup, however we don't unset its pointer, and thus we'd might try to call a function using an invalidated pointer. So, unset the this._current_page reference when its get destroyed, connecting to destroy signal when setting it and disconnecting when changing page. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1281 https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/540
This commit is contained in:
parent
de0c3251dd
commit
c0c2edf2e1
@ -1522,10 +1522,15 @@ var Keyboard = class Keyboard {
|
||||
|
||||
if (this._current_page != null) {
|
||||
this._setCurrentLevelLatched(this._current_page, false);
|
||||
this._current_page.disconnect(this._current_page._destroyID);
|
||||
this._current_page.hide();
|
||||
delete this._current_page._destroyID;
|
||||
}
|
||||
|
||||
this._current_page = layers[activeLevel];
|
||||
this._current_page._destroyID = this._current_page.connect('destroy', () => {
|
||||
this._current_page = null;
|
||||
});
|
||||
this._updateCurrentPageVisible();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user