From 89d6feee4739896e4e9154232f49947fbd51dcb9 Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Mon, 13 Apr 2026 23:45:05 +0200 Subject: [PATCH] fix: restore playlist scroll at 0/50/150ms to catch late layout events mpv video surface resize triggers layout events across multiple event loop cycles. A single deferred restore was too early. Co-Authored-By: Claude Opus 4.6 --- main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 7c5828b..cfb4331 100755 --- a/main.py +++ b/main.py @@ -2246,9 +2246,11 @@ class MainWindow(QMainWindow): self._spn_spread.setValue(float(self._settings.value("spread", "3.0"))) self._preview_win.show() self._preview_timer.start() - # Restore playlist scroll after Qt processes pending layout events. + # Restore playlist scroll — layout events from video load trickle in + # across several event loop cycles, so restore multiple times. if hasattr(self, '_playlist_scroll_stash'): - QTimer.singleShot(0, self._restore_playlist_scroll) + for delay in (0, 50, 150): + QTimer.singleShot(delay, self._restore_playlist_scroll) # Run DB fuzzy match off the main thread — can be slow on large databases. filename = os.path.basename(self._file_path)