[gnome-shell] keyboard: Unset current page when it gets destroyed
- From: Marco Trevisan <marcotrevi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] keyboard: Unset current page when it gets destroyed
- Date: Thu, 9 May 2019 21:33:30 +0000 (UTC)
commit c0c2edf2e1162bb36ad93ab015a64b7dedbd7cec
Author: Marco Trevisan (TreviƱo) <mail 3v1n0 net>
Date: Thu May 9 14:30:21 2019 -0500
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
js/ui/keyboard.js | 5 +++++
1 file changed, 5 insertions(+)
---
diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
index fbba2840e..a67d08f1e 100644
--- a/js/ui/keyboard.js
+++ b/js/ui/keyboard.js
@@ -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();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]