From 6f684bb49131b29366831c0e75ef0fde8aa5ba59 Mon Sep 17 00:00:00 2001 From: pax Date: Sun, 5 Apr 2026 14:52:28 -0500 Subject: [PATCH] =?UTF-8?q?Fix=20diagonal=20navigation=20=E2=80=94=20use?= =?UTF-8?q?=20viewport=20width=20for=20column=20count?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FlowLayout.columns now reads the scroll area viewport width instead of its own width, which can be stale after appending posts or scrollbar visibility changes. --- booru_viewer/gui/grid.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/booru_viewer/gui/grid.py b/booru_viewer/gui/grid.py index 89f8dca..78c0c4b 100644 --- a/booru_viewer/gui/grid.py +++ b/booru_viewer/gui/grid.py @@ -258,7 +258,12 @@ class FlowLayout(QWidget): def columns(self) -> int: if not self._items: return 1 - w = self.width() or 800 + # Use parent viewport width if inside a QScrollArea + parent = self.parentWidget() + if parent and hasattr(parent, 'viewport'): + w = parent.viewport().width() + else: + w = self.width() or 800 return max(1, w // (THUMB_SIZE + THUMB_SPACING))