diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinviewcontainer.cpp | 15 | ||||
| -rw-r--r-- | src/views/dolphinview.cpp | 1 |
2 files changed, 15 insertions, 1 deletions
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() diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index e8772fdad..594eddb68 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -1788,7 +1788,6 @@ void DolphinView::slotDirectoryRedirection(const QUrl &oldUrl, const QUrl &newUr if (oldUrl.matches(url(), QUrl::StripTrailingSlash)) { // Update the view's URL before emitting signals. m_url = newUrl; // #186947 - Q_EMIT urlChanged(m_url); Q_EMIT redirection(oldUrl, newUrl); } |
