From 87e4bf52b7c067c6af5dad00b61b43e65289a627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Fri, 19 Jun 2020 10:10:21 +0200 Subject: [PATCH] windowPreview: Fix a division by zero When the bounding box size is 0 during allocation (which happens right after creating a window for example), we're doing a division by zero and end up with a NaN scale. This ends up making the childBox NaN, which triggers an error in Clutters allocation machinery. So fix that and fall back to a scale of 1 in case the bounding box is empty. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1320 --- js/ui/windowPreview.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/js/ui/windowPreview.js b/js/ui/windowPreview.js index 842a4c515..b7fc5efa5 100644 --- a/js/ui/windowPreview.js +++ b/js/ui/windowPreview.js @@ -67,8 +67,12 @@ var WindowPreviewLayout = GObject.registerClass({ vfunc_allocate(container, box) { // If the scale isn't 1, we weren't allocated our preferred size // and have to scale the children allocations accordingly. - const scaleX = box.get_width() / this._boundingBox.get_width(); - const scaleY = box.get_height() / this._boundingBox.get_height(); + const scaleX = this._boundingBox.get_width() > 0 + ? box.get_width() / this._boundingBox.get_width() + : 1; + const scaleY = this._boundingBox.get_height() > 0 + ? box.get_height() / this._boundingBox.get_height() + : 1; const childBox = new Clutter.ActorBox();