mutter/patches/ubuntu/layout-Try-to-allocate-before-getting-size-of-tracke.patch
Ward Nakchbandi (Cosmic Fusion) deaf92469b
2023-10-03 21:58:03 +03:00

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);