]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistcontroller.cpp
Merge branch 'release/22.04'
[dolphin.git] / src / kitemviews / kitemlistcontroller.cpp
index 80c28f25ca1d98647111da6ba8064390739670f5..966dc822b530e3597279d8fa670fedafde0ad738 100644 (file)
 #include "kitemlistview.h"
 #include "private/kitemlistkeyboardsearchmanager.h"
 #include "private/kitemlistrubberband.h"
-#include "private/ktwofingerswipe.h"
-#include "private/ktwofingertap.h"
 #include "views/draganddrophelper.h"
 
+#include <KTwoFingerSwipe>
+#include <KTwoFingerTap>
+
 #include <QAccessible>
 #include <QApplication>
 #include <QDrag>
@@ -1521,6 +1522,12 @@ bool KItemListController::onPress(const QPoint& screenPos, const QPointF& pos, c
                 // and short-circuit for single-click activation (it will then propagate to onRelease and activate the item)
                 // or we just keep going for double-click activation
                 if (m_view->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) || m_singleClickActivationEnforced) {
+                    if (!pressedItemAlreadySelected) {
+                        // An unselected item was clicked directly while deselecting multiple other items so we select it.
+                        m_selectionManager->setSelected(m_pressedIndex.value(), 1, KItemListSelectionManager::Toggle);
+                        m_selectionManager->setCurrentItem(m_pressedIndex.value());
+                        m_selectionManager->beginAnchoredSelection(m_pressedIndex.value());
+                    }
                     return true; // event handled, don't create rubber band
                 }
             } else {