From eeb5251c30c3cbcdff5db59b250286eae30792fb Mon Sep 17 00:00:00 2001 From: Wendi Gan Date: Sun, 28 Sep 2025 11:46:23 +0800 Subject: DolphinViewContainer, DolphinView: Fix incorrect view activation when renaming folder Issue: In a split-view tab, if a folder is opened in the left view and its parent folder is opened in the right view, renaming the folder from the right view activates the left view. Reason: When renaming the folder, the emitted `DolphinView::urlChanged` will invoke `KUrlNavigator::setLocationUrl()`, which finally calls `DolphinViewContainer::setActive()` and activates the left view. Change: - Temporarily disconnect the `DolphinUrlNavigator::activated` signal to avoid activation of `DolphinViewContainer`. - Force inactivate `DolphinUrlNavigator`. --- src/dolphinviewcontainer.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/dolphinviewcontainer.cpp') diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 5543dad5a..3f8d7d71e 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -938,6 +938,21 @@ void DolphinViewContainer::redirect(const QUrl &oldUrl, const QUrl &newUrl) setSearchBarVisible(isSearchUrl(newUrl)); m_urlNavigator->blockSignals(block); + + // Before emitting `urlChanged`, temporarily disconnect the `activated` signal to avoid activation of `DolphinViewContainer`. + bool blockActivation = m_urlNavigatorConnected && !isActive(); + if (blockActivation) { + disconnect(m_urlNavigatorConnected, &DolphinUrlNavigator::activated, this, &DolphinViewContainer::activate); + } + + Q_EMIT m_view->urlChanged(newUrl); + + if (blockActivation) { + connect(m_urlNavigatorConnected, &DolphinUrlNavigator::activated, this, &DolphinViewContainer::activate); + + // Force inactivate `DolphinUrlNavigator`. + m_urlNavigatorConnected->setActive(false); + } } void DolphinViewContainer::requestFocus() -- cgit v1.3