fix(grid): refresh pixmaps on resize to stop black-out

Column shifts evict pixmaps via _recycle_offscreen, which only ran on scroll until now.

behavior change: no blank grid after splitter/tile resize.
This commit is contained in:
pax 2026-04-20 10:57:26 -05:00
parent 1941cb35e8
commit e0146a4681

View File

@ -868,8 +868,10 @@ class ThumbnailGrid(QScrollArea):
super().resizeEvent(event) super().resizeEvent(event)
if self._flow: if self._flow:
self._flow.resize(self.viewport().size().width(), self._flow.minimumHeight()) self._flow.resize(self.viewport().size().width(), self._flow.minimumHeight())
# Qt Wayland buffer goes stale after compositor-driven resize # Column count can change on resize (splitter drag, tile/float
# (Hyprland tiled geometry change). Thumbs reflow but paint # toggle). Thumbs that were outside the keep zone had their
# skips until a scroll/click invalidates the viewport. Force # pixmap freed by _recycle_offscreen and will paint as empty
# repaint so the grid stays visible through tile resizes. # cells if the row shift moves them into view without a scroll
self.viewport().update() # event to refresh them. Re-run the recycle pass against the
# new geometry so newly-visible thumbs get their pixmap back.
self._recycle_offscreen()