From 868b1a77082b1d7227e6594f02c90922890606bb Mon Sep 17 00:00:00 2001 From: pax Date: Fri, 10 Apr 2026 20:20:23 -0500 Subject: [PATCH] cell padding starts rubber band and deselects, not just flow gaps --- booru_viewer/gui/grid.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/booru_viewer/gui/grid.py b/booru_viewer/gui/grid.py index bef2d12..8d3e76c 100644 --- a/booru_viewer/gui/grid.py +++ b/booru_viewer/gui/grid.py @@ -568,15 +568,19 @@ class ThumbnailGrid(QScrollArea): def mousePressEvent(self, event: QMouseEvent) -> None: if event.button() == Qt.MouseButton.LeftButton: - # Only start rubber band if click is on empty grid space (not a thumbnail) child = self.childAt(event.position().toPoint()) - if child is self.widget() or child is self.viewport(): + # Empty space: flow layout, viewport, or cell padding (missed pixmap) + is_empty = child is self.widget() or child is self.viewport() + if not is_empty and isinstance(child, ThumbnailWidget): + local = child.mapFromParent(self.widget().mapFromParent(event.position().toPoint())) + if not child._hit_pixmap(local): + is_empty = True + if is_empty: self._rb_origin = event.position().toPoint() if not self._rubber_band: self._rubber_band = QRubberBand(QRubberBand.Shape.Rectangle, self.viewport()) self._rubber_band.setGeometry(QRect(self._rb_origin, QSize())) self._rubber_band.show() - # Click on empty space deselects everything self.clear_selection() return super().mousePressEvent(event)