]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Set viewFocus when DolphinViewContainer state is consistent
authorAkseli Lahtinen <akselmo@akselmo.dev>
Fri, 22 Dec 2023 08:29:40 +0000 (08:29 +0000)
committerAkseli Lahtinen <akselmo@akselmo.dev>
Fri, 22 Dec 2023 08:29:40 +0000 (08:29 +0000)
Read Felix' comment here: https://invent.kde.org/system/dolphin/-/merge_requests/679#note_835657

In short:
> The above change moves the `m_view->setFocus()` towards a point in time in
> which `DolphinViewContainer`'s selection mode state is consistent again.

BUG:478724

src/dolphinviewcontainer.cpp

index a4db8b74a9ed21148263f34956c78003bac7689f..ecabbc379b27eaf35c658afe068f68d5a061f48c 100644 (file)
@@ -326,12 +326,13 @@ void DolphinViewContainer::setSelectionModeEnabled(bool enabled, KActionCollecti
         }
         Q_CHECK_PTR(m_selectionModeTopBar); // there is no point in disabling selectionMode when it wasn't even enabled once.
         Q_CHECK_PTR(m_selectionModeBottomBar);
-        if (m_selectionModeTopBar->isAncestorOf(QApplication::focusWidget()) || m_selectionModeBottomBar->isAncestorOf(QApplication::focusWidget())) {
-            m_view->setFocus();
-        }
         m_selectionModeTopBar->setVisible(false, WithAnimation);
         m_selectionModeBottomBar->setVisible(false, WithAnimation);
         Q_EMIT selectionModeChanged(false);
+
+        if (m_selectionModeTopBar->isAncestorOf(QApplication::focusWidget()) || m_selectionModeBottomBar->isAncestorOf(QApplication::focusWidget())) {
+            m_view->setFocus();
+        }
         return;
     }