From f268d61fe40bd769d674a9941cb72c681cb2b31b Mon Sep 17 00:00:00 2001 From: Ethanfel Date: Mon, 20 Apr 2026 11:36:04 +0200 Subject: [PATCH] fix: Ctrl-deselecting scan result jumps to previous selected row When the current item is deselected via Ctrl+click, fall back to the last remaining selected item instead of staying on the deselected row. Co-Authored-By: Claude Opus 4.6 --- main.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index c2058bd..61064dd 100755 --- a/main.py +++ b/main.py @@ -973,11 +973,18 @@ class ScanResultsPanel(QWidget): return "" def _on_selection_changed(self, table: QTableWidget) -> None: + selected = table.selectedItems() cur = table.currentItem() - if cur is not None: - start = table.item(cur.row(), 0).data(Qt.ItemDataRole.UserRole + 1) - if start is not None: - self.seek_requested.emit(float(start)) + # If current item was deselected, fall back to last selected row + if cur is not None and cur.isSelected(): + row = cur.row() + elif selected: + row = selected[-1].row() + else: + return + start = table.item(row, 0).data(Qt.ItemDataRole.UserRole + 1) + if start is not None: + self.seek_requested.emit(float(start)) def _on_cell_changed(self, table: QTableWidget, row: int, col: int) -> None: """Handle user editing a Time or End cell — parse and update DB."""