From f180a53d7e216e47feceb388f5663cab9e5f8b2c Mon Sep 17 00:00:00 2001 From: Will Thompson Date: Tue, 25 Sep 2018 18:01:36 +0100 Subject: [PATCH 1/6] endSessionDialog: squash "reference to undefined property" warning dialogContent is set to one of the elements of the list DialogContent, but not all of those have a checkBoxText property. When logging out (as opposed to shutting down), this causes a warning: JS WARNING: [resource:///org/gnome/shell/ui/endSessionDialog.js 763]: reference to undefined property "checkBoxText" (The line number corresponds to this line in 3.28.3.) The warning is apparently not triggered if the undefined property is used as part of a boolean expression: gjs> var x = {}; gjs> x.a; typein:2:1 strict warning: reference to undefined property "a" gjs> if (x.b) { log('oh no'); } gjs> x.c || '' "" _setCheckBoxLabel() just checks the truthiness of its 'text' argument, and the empty string is false-y, so passing '' rather than undefined has no functional effect. --- js/ui/endSessionDialog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 7d18d0b79..07c954139 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -760,7 +760,7 @@ var EndSessionDialog = new Lang.Class({ let updatePrepared = this._pkOfflineProxy.UpdatePrepared; let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed; - _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText); + _setCheckBoxLabel(this._checkBox, dialogContent.checkBoxText || ''); this._checkBox.actor.visible = (dialogContent.checkBoxText && updatePrepared && updatesAllowed); this._checkBox.actor.checked = (updatePrepared && updateTriggered); -- 2.26.2 From 69ac413ad3154df50a8c5212420490c1958ef5d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 23 May 2019 06:12:56 +0200 Subject: [PATCH 2/6] realmd: Set login format to null on start and update if invalid We were checking an undefined property but that would lead to a a warning. Instead we can consider the login format unset until is null, and in case update it. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/700 --- js/gdm/realmd.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/gdm/realmd.js b/js/gdm/realmd.js index 9aa27d928..c3a35ea48 100644 --- a/js/gdm/realmd.js +++ b/js/gdm/realmd.js @@ -68,6 +68,7 @@ var Manager = new Lang.Class({ '/org/freedesktop/realmd', this._reloadRealms.bind(this)) this._realms = {}; + this._loginFormat = null; this._signalId = this._aggregateProvider.connect('g-properties-changed', (proxy, properties) => { @@ -133,7 +134,7 @@ var Manager = new Lang.Class({ }, get loginFormat() { - if (this._loginFormat !== undefined) + if (this._loginFormat) return this._loginFormat; this._updateLoginFormat(); -- 2.26.2 From de54695614cd1803b0d7b2371e72867a79bebba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 9 Jun 2020 19:42:21 +0200 Subject: [PATCH 3/6] popupMenu: Guard against non-menu-item children This avoid a harmless but annoying warning. --- js/ui/popupMenu.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js index 83194d72b..39ba93d8d 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js @@ -714,7 +714,8 @@ var PopupMenuBase = new Lang.Class({ }, _getMenuItems() { - return this.box.get_children().map(a => a._delegate).filter(item => { + const children = this.box.get_children().filter(a => a._delegate !== undefined); + return children.map(a => a._delegate).filter(item => { return item instanceof PopupBaseMenuItem || item instanceof PopupMenuSection; }); }, -- 2.26.2 From 048889621dc751a9b2df00ddc009a945b97e0ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 9 Jun 2020 19:48:06 +0200 Subject: [PATCH 4/6] st/shadow: Check pipeline when painting We shouldn't simply assume that st_shadow_helper_update() has been called before paint() or that the pipeline was created successfully. --- src/st/st-shadow.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c index 73aa1a3a2..880f7dc7b 100644 --- a/src/st/st-shadow.c +++ b/src/st/st-shadow.c @@ -287,8 +287,9 @@ st_shadow_helper_paint (StShadowHelper *helper, ClutterActorBox *actor_box, guint8 paint_opacity) { - _st_paint_shadow_with_opacity (helper->shadow, - helper->pipeline, - actor_box, - paint_opacity); + if (helper->pipeline != NULL) + _st_paint_shadow_with_opacity (helper->shadow, + helper->pipeline, + actor_box, + paint_opacity); } -- 2.26.2 From 6828a66377c1ac229f901519f7079e7f874ebe25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 22 Jun 2020 18:37:14 +0200 Subject: [PATCH 5/6] ibusManager: Work around annotation shortcoming The callback parameter isn't marked as optional, so make sure to always pass a callback (even if it ends up not doing anything). --- js/misc/ibusManager.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/js/misc/ibusManager.js b/js/misc/ibusManager.js index e6d4b5aec..8703593b7 100644 --- a/js/misc/ibusManager.js +++ b/js/misc/ibusManager.js @@ -210,8 +210,11 @@ var IBusManager = new Lang.Class({ return; } - this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME, - null, callback); + this._ibus.set_global_engine_async(id, + this._MAX_INPUT_SOURCE_ACTIVATION_TIME, null, () => { + if (callback) + callback(); + }); }, preloadEngines(ids) { -- 2.26.2 From b861ec68779258c8b6f555f4acc2b045e179f8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Wed, 25 Apr 2018 22:03:16 +0200 Subject: [PATCH 6/6] workspaceThumbnail: Initialize signal handler ids to 0 They are used in conditions, so initialize them first. --- js/ui/workspaceThumbnail.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js index 381169ea6..82686e68f 100644 --- a/js/ui/workspaceThumbnail.js +++ b/js/ui/workspaceThumbnail.js @@ -678,6 +678,11 @@ var ThumbnailsBox = new Lang.Class({ this._updateSwitcherVisibility.bind(this)); Main.layoutManager.connect('monitors-changed', this._rebuildThumbnails.bind(this)); + + this._switchWorkspaceNotifyId = 0; + this._nWorkspacesNotifyId = 0; + this._syncStackingId = 0; + this._workareasChangedId = 0; }, _updateSwitcherVisibility() { -- 2.26.2