35 lines
1.5 KiB
Diff
35 lines
1.5 KiB
Diff
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
|
Date: Wed, 31 Mar 2021 17:59:09 +0800
|
|
Subject: layout: Try to allocate before getting size of tracked actors
|
|
|
|
Because we're about to `get_transformed_{position,size}` of each,
|
|
which will return NaNs if not yet allocated. Those NaNs were finding
|
|
their way into the workspace strut definitions on startup and not
|
|
getting corrected until after the startup animation completed. This
|
|
meant any extensions depending on the `workareas-changed` signal were
|
|
getting an incorrect workarea (the whole workspace) and so were
|
|
rendered out of place during the login animation. Now they're not.
|
|
|
|
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
|
Origin: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1785
|
|
Bug-Ubuntu: https://launchpad.net/bugs/1917939, https://launchpad.net/bugs/1919979
|
|
Bug-GNOME: https://gitlab.gnome.org/GNOME/mutter/-/issues/1627
|
|
Forwarded: yes
|
|
Last-Update: 2021-04-07
|
|
---
|
|
js/ui/layout.js | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/js/ui/layout.js b/js/ui/layout.js
|
|
index 4d5cd5a..06ed440 100644
|
|
--- a/js/ui/layout.js
|
|
+++ b/js/ui/layout.js
|
|
@@ -1058,6 +1058,7 @@ export const LayoutManager = GObject.registerClass({
|
|
if (!(actorData.affectsInputRegion && wantsInputRegion) && !actorData.affectsStruts)
|
|
continue;
|
|
|
|
+ actorData.actor.get_allocation_box();
|
|
let [x, y] = actorData.actor.get_transformed_position();
|
|
let [w, h] = actorData.actor.get_transformed_size();
|
|
x = Math.round(x);
|