From 15d8093ee2ab69ca821d54b59552cb9b4dcd173e Mon Sep 17 00:00:00 2001 From: Wu JiangYu Date: Mon, 28 Sep 2026 11:15:35 +0800 Subject: [PATCH] feat: track non-keyboard page navigation state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Set changedByNonKeyboard to false and update previousIndex when navigating pages via mouse click on page indicators 2. Handle both first page to last page and last page to first page wrapping scenarios 3. Ensures page switch state tracking correctly reflects user interaction method for proper animation and state management Log: Improved page navigation state tracking for non-keyboard interactions Influence: 1. Test clicking page indicator dots to switch pages and verify correct page transition 2. Verify first page to last page wrap-around navigation via mouse click 3. Verify last page to first page wrap-around navigation via mouse click 4. Test that keyboard navigation still works correctly after mouse-based page switching 5. Verify that previousIndex is correctly updated for page switch animations 6. Test rapid page switching via mouse clicks to ensure state consistency feat: 跟踪非键盘翻页状态 1. 通过鼠标点击页面指示器翻页时,设置 changedByNonKeyboard 为 false 并更 新 previousIndex 2. 处理首页跳转到末页和末页跳转到首页的循环场景 3. 确保翻页状态跟踪正确反映用户交互方式,以便正确处理动画和状态管理 Log: 改进非键盘交互的翻页状态跟踪 Influence: 1. 测试点击页面指示器圆点切换页面,验证页面切换是否正确 2. 验证通过鼠标点击从首页跳转到末页的循环导航 3. 验证通过鼠标点击从末页跳转到首页的循环导航 4. 测试鼠标翻页后键盘导航是否仍正常工作 5. 验证 previousIndex 是否正确更新以支持翻页动画 6. 测试通过鼠标快速连续翻页,确保状态一致性 PMS: BUG-377905 --- qml/FullscreenFrame.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/FullscreenFrame.qml b/qml/FullscreenFrame.qml index 68707f10..cd2d485c 100644 --- a/qml/FullscreenFrame.qml +++ b/qml/FullscreenFrame.qml @@ -510,6 +510,9 @@ InputEventItem { return } + listviewPage.changedByNonKeyboard = false + listviewPage.previousIndex = listItem.viewIndex + if (listItem.viewIndex === 0) { // is the 1st page, go to last page listviewPage.setCurrentIndex(pageCount - 1) @@ -538,6 +541,8 @@ InputEventItem { return } + listviewPage.changedByNonKeyboard = false + if (listItem.viewIndex === (pageCount - 1) && pageCount > 1) { // is the last page, go to first page // mark this as a "next page" switch so that checkPageSwitchState