diff --git a/renderer/app.js b/renderer/app.js index c6c9983..8969a86 100644 --- a/renderer/app.js +++ b/renderer/app.js @@ -850,12 +850,13 @@ function _renderVirtualRows(tbody) { if (startIdx === _lastVisibleRange.start && endIdx === _lastVisibleRange.end) { const rows = tbody.querySelectorAll('.queue-row'); if (rows.length === endIdx - startIdx) { + let allMatch = true; for (let i = 0; i < rows.length; i++) { const job = _sortedJobsCache[startIdx + i]; - if (rows[i].dataset.jobId !== job.id) { break; } // identity mismatch, full rebuild below + if (rows[i].dataset.jobId !== job.id) { allMatch = false; break; } _updateRowInPlace(rows[i], job); } - return; + if (allMatch) return; // all rows updated in-place, no rebuild needed } } _lastVisibleRange = { start: startIdx, end: endIdx };