gnome-shell/SOURCES/fix-some-js-warnings.patch
2021-09-09 17:50:48 +00:00

183 lines
6.3 KiB
Diff

From 43d6305bfbe079a3bf80a96d40a3a176c165ef7a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Thu, 23 May 2019 06:12:56 +0200
Subject: [PATCH 1/5] 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 50f3c5899..04cd99787 100644
--- a/js/gdm/realmd.js
+++ b/js/gdm/realmd.js
@@ -21,6 +21,7 @@ var Manager = class {
'/org/freedesktop/realmd',
this._reloadRealms.bind(this))
this._realms = {};
+ this._loginFormat = null;
this._signalId = this._aggregateProvider.connect('g-properties-changed',
(proxy, properties) => {
@@ -86,7 +87,7 @@ var Manager = class {
}
get loginFormat() {
- if (this._loginFormat !== undefined)
+ if (this._loginFormat)
return this._loginFormat;
this._updateLoginFormat();
--
2.21.1
From 80836cd1ea4ef5d69a35bdfd7931b0e2c202f5b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 9 Jun 2020 19:42:21 +0200
Subject: [PATCH 2/5] 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 44818533a..b5115d7f7 100644
--- a/js/ui/popupMenu.js
+++ b/js/ui/popupMenu.js
@@ -696,7 +696,8 @@ var PopupMenuBase = 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.21.1
From f0af67381cf0fb9a9ab766fa6b3d3e6ff5707122 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 9 Jun 2020 19:48:06 +0200
Subject: [PATCH 3/5] 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 | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c
index f3a22f034..7665de755 100644
--- a/src/st/st-shadow.c
+++ b/src/st/st-shadow.c
@@ -289,9 +289,10 @@ st_shadow_helper_paint (StShadowHelper *helper,
ClutterActorBox *actor_box,
guint8 paint_opacity)
{
- _st_paint_shadow_with_opacity (helper->shadow,
- framebuffer,
- helper->pipeline,
- actor_box,
- paint_opacity);
+ if (helper->pipeline != NULL)
+ _st_paint_shadow_with_opacity (helper->shadow,
+ framebuffer,
+ helper->pipeline,
+ actor_box,
+ paint_opacity);
}
--
2.21.1
From a500f3c59a485755b8361e8f4dd48f8df4af95ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 5 Jan 2021 21:42:24 +0100
Subject: [PATCH 4/5] viewSelector: Don't set page parent during construction
gjs now aggressively garbage-collects objects that fall out of scope,
sometimes too aggressively:
- we pass a child as construct property to StBin
- as a result, the child's ::parent-set handler runs
- when calling clutter_actor_get_parent() from that
handler, the returned object is garbage-collected
*before* the constructor returns (and thus the
assignment that would keep it alive)
This is a bug on the gjs side that should be fixed, but we can easily
work around the issue by setting the child after constructing the
parent.
---
js/ui/viewSelector.js | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index 77146552d..6529ac9a5 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -301,11 +301,13 @@ var ViewSelector = class {
_addPage(actor, name, a11yIcon, params) {
params = Params.parse(params, { a11yFocus: null });
- let page = new St.Bin({ child: actor,
- x_align: St.Align.START,
- y_align: St.Align.START,
- x_fill: true,
- y_fill: true });
+ let page = new St.Bin({
+ x_align: St.Align.START,
+ y_align: St.Align.START,
+ x_fill: true,
+ y_fill: true,
+ });
+ page.set_child(actor);
if (params.a11yFocus)
Main.ctrlAltTabManager.addGroup(params.a11yFocus, name, a11yIcon);
else
--
2.21.1
From a53d1a74fed3aee896a6930130bd7e3a39a24255 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 23 Oct 2020 23:44:48 +0200
Subject: [PATCH 5/5] workspacesView: Don't set up MetaLater when unparented
We already do the check in the later handler, but if we got
unparented because the actor is destroyed, then the call to
get_parent() itself will trigger a (harmless but annoying)
warning.
---
js/ui/workspacesView.js | 3 +++
1 file changed, 3 insertions(+)
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index e302296a6..3270900b2 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -715,6 +715,9 @@ var WorkspacesDisplay = class {
oldParent.disconnect(this._notifyOpacityId);
this._notifyOpacityId = 0;
+ if (!this.actor.get_parent())
+ return;
+
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
let newParent = this.actor.get_parent();
if (!newParent)
--
2.21.1