┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
diff options
context:
space:
mode:
authorEugene Popov <[email protected]>2023-04-25 13:05:39 +0000
committerFelix Ernst <[email protected]>2023-04-25 13:05:39 +0000
commit7b6a67e520c04f56b4b05fa26b252177398df6df (patch)
tree2932c1185b4fbd123327ff8d42afc0671bbce1ed /src/kitemviews/kitemlistcontroller.cpp
parentf186f694d4613c335184feed89e50f345c72f47c (diff)
Fix activating the Selection Mode with a keyboard shortcut
If a spacebar is used as a keyboard shortcut to activate the Selection Mode, then allow this shortcut to be triggered only if the view has a keyboard focus. BUG: 465489
Diffstat (limited to 'src/kitemviews/kitemlistcontroller.cpp')
-rw-r--r--src/kitemviews/kitemlistcontroller.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 0c9f19f55..2e7d2f057 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -228,6 +228,11 @@ bool KItemListController::selectionMode() const
return m_selectionMode;
}
+bool KItemListController::isSearchAsYouTypeActive() const
+{
+ return m_keyboardManager->isSearchAsYouTypeActive();
+}
+
bool KItemListController::keyPressEvent(QKeyEvent *event)
{
int index = m_selectionManager->currentItem();
@@ -439,10 +444,13 @@ bool KItemListController::keyPressEvent(QKeyEvent *event)
m_selectionManager->setSelected(index, 1, KItemListSelectionManager::Toggle);
m_selectionManager->beginAnchoredSelection(index);
break;
- } else if (m_keyboardManager->addKeyBeginsNewSearch()) { // File names shouldn't start with a space,
- // so we can use this press as a keyboard shortcut instead.
- Q_EMIT selectionModeChangeRequested(!m_selectionMode);
- break;
+ } else {
+ // Select the current item if it is not selected yet.
+ const int current = m_selectionManager->currentItem();
+ if (!m_selectionManager->isSelected(current)) {
+ m_selectionManager->setSelected(current);
+ break;
+ }
}
}
Q_FALLTHROUGH(); // fall through to the default case and add the Space to the current search string.