┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2026-06-13 15:24:49 +0000
committerMéven Car <[email protected]>2026-06-13 15:26:22 +0000
commit5ccdce11680528d1e993bffe2cae8417b5aba8c8 (patch)
treef8cb22d0ee7df3ec56af1cc265b74aa9f6e96582 /src/kitemviews
parentd49b4aa1bc826bc2343f518af6712981228f1c8e (diff)
smoothscroller: always emit scrollingStopped from scrollTo
When scrollTo() is asked to move to the position the scrollbar already holds (clamped, e.g. an item at the bottom, or a sub-pixel offset), no animation runs and scrollingStopped() was never emitted. Callers waiting for it stayed blocked: KItemListView::scrollToItem() delegates to scrollTo for any non-zero offset, and DolphinView::renameSelectedItems() only opens the inline rename editor once scrollingStopped() arrives. So inline rename silently did nothing for the affected items. Emit scrollingStopped() in the no-op case too, and add a regression test.
Diffstat (limited to 'src/kitemviews')
-rw-r--r--src/kitemviews/private/kitemlistsmoothscroller.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/kitemviews/private/kitemlistsmoothscroller.cpp b/src/kitemviews/private/kitemlistsmoothscroller.cpp
index 7cedf9d94..dc7db23d6 100644
--- a/src/kitemviews/private/kitemlistsmoothscroller.cpp
+++ b/src/kitemviews/private/kitemlistsmoothscroller.cpp
@@ -136,6 +136,12 @@ void KItemListSmoothScroller::scrollTo(qreal position)
if (newValue != m_scrollBar->value()) {
m_smoothScrolling = true;
m_scrollBar->setValue(newValue);
+ } else {
+ // The target position is the one we are already at, so no animation will
+ // run and slotAnimationStateChanged() will not emit scrollingStopped().
+ // Emit it here so callers waiting for the view to settle (e.g. inline
+ // rename via KItemListView::scrollToItem()) are not left hanging.
+ Q_EMIT scrollingStopped();
}
}