From 2b3e630af545d27e040e29a7dcde71ced23c2c96 Mon Sep 17 00:00:00 2001 From: wujiangyu Date: Fri, 23 May 2025 10:57:51 +0800 Subject: [PATCH] fix: Install new app will start from first page to fill. as title PMS-BUG-317475 --- src/models/itemarrangementproxymodel.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/models/itemarrangementproxymodel.cpp b/src/models/itemarrangementproxymodel.cpp index f3008f73..7affbc16 100644 --- a/src/models/itemarrangementproxymodel.cpp +++ b/src/models/itemarrangementproxymodel.cpp @@ -363,7 +363,27 @@ void ItemArrangementProxyModel::onSourceModelChanged() // add all existing ones if they are not already in if (folder == -1) { findItem(desktopId); - m_topLevel->appendItem(desktopId); + // Find first available page with space + int targetPage = -1; + int targetIndex = -1; + + // Check each page for available space + for (int page = 0; page < m_topLevel->pageCount(); page++) { + int itemCount = m_topLevel->itemCount(page); + if (itemCount < m_topLevel->maxItemCountPerPage()) { + targetPage = page; + targetIndex = itemCount; + break; + } + } + + if (targetPage != -1) { + // Add to first available page with space + m_topLevel->insertItem(desktopId, targetPage, targetIndex); + } else { + // All pages are full, append to new page + m_topLevel->appendItem(desktopId); + } } }