summaryrefslogtreecommitdiff
path: root/src/layout/algorithm/tiled
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-03-02 21:23:24 +0000
committerGitHub <noreply@github.com>2026-03-02 21:23:24 +0000
commitff20cbf89c68a87b12c0cd3453ac13d7c7197da5 (patch)
treeb05a55815202720a33d5856115cd08a3910c6258 /src/layout/algorithm/tiled
parentfe0a20213783a3dcedb4ad30e79e5a6cc9dc3d75 (diff)
algo/scrolling: fix offset on removeTarget (#13515)
Diffstat (limited to 'src/layout/algorithm/tiled')
-rw-r--r--src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp b/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp
index 94e658d3..3b5dca4a 100644
--- a/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp
+++ b/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp
@@ -627,16 +627,20 @@ void CScrollingAlgorithm::removeTarget(SP<ITarget> target) {
if (!m_scrollingData->next(DATA->column.lock()) && DATA->column->targetDatas.size() <= 1) {
// move the view if this is the last column
- const auto USABLE = usableArea();
- m_scrollingData->controller->adjustOffset(-(USABLE.w * DATA->column->getColumnWidth()));
+ const auto USABLE = usableArea();
+ const bool isPrimaryHoriz = m_scrollingData->controller->isPrimaryHorizontal();
+ const double usablePrimary = isPrimaryHoriz ? USABLE.w : USABLE.h;
+ m_scrollingData->controller->adjustOffset(-(usablePrimary * DATA->column->getColumnWidth()));
}
DATA->column->remove(target);
if (!DATA->column) {
// column got removed, let's ensure we don't leave any cringe extra space
- const auto USABLE = usableArea();
- double newOffset = std::clamp(m_scrollingData->controller->getOffset(), 0.0, std::max(m_scrollingData->maxWidth() - USABLE.w, 1.0));
+ const auto USABLE = usableArea();
+ const bool isPrimaryHoriz = m_scrollingData->controller->isPrimaryHorizontal();
+ const double usablePrimary = isPrimaryHoriz ? USABLE.w : USABLE.h;
+ const double newOffset = std::clamp(m_scrollingData->controller->getOffset(), 0.0, std::max(m_scrollingData->maxWidth() - usablePrimary, 1.0));
m_scrollingData->controller->setOffset(newOffset);
}