From 1df90490e678c14173bbddbbf0c449ca3674cac6 Mon Sep 17 00:00:00 2001 From: Yuyao Huang Date: Sat, 9 May 2026 14:51:41 +0800 Subject: [PATCH] fix: restore scroll position and in-focus highlighting correctly - Set selectedTaskId when loading saved task - Call handleScrollFocus initially to set in-focus class - Skip saving during initialization unless task matches saved --- static/js/tasks.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/static/js/tasks.js b/static/js/tasks.js index 9e77ec9..d0f979d 100644 --- a/static/js/tasks.js +++ b/static/js/tasks.js @@ -57,6 +57,7 @@ async function loadTasks() { if (savedTaskExists) { console.log("loadTasks: using savedTaskId path"); scrollToTask(savedTaskId); + selectedTaskId = savedTaskId; if (isLandscapeMode()) { selectTask(savedTaskId); } @@ -177,6 +178,9 @@ function initScrollFocus() { scrollView.removeEventListener("scroll", handleScrollFocus); scrollView.addEventListener("scroll", handleScrollFocus); + + // Initial call to set in-focus class without saving + handleScrollFocus(); } function handleScrollFocus() { @@ -207,8 +211,11 @@ function handleScrollFocus() { const taskId = parseInt(closestItem.dataset.taskId); - clearTimeout(persistTimer); - persistTimer = setTimeout(() => persistSelectedTask(taskId), 400); + // Only save during initialization if it matches the saved task + if (!isInitializing || taskId === selectedTaskId) { + clearTimeout(persistTimer); + persistTimer = setTimeout(() => persistSelectedTask(taskId), 400); + } if (isLandscapeMode()) { if (taskId !== selectedTaskId) {