diff options
Diffstat (limited to 'src/dolphinview.cpp')
| -rw-r--r-- | src/dolphinview.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 770bab1f7..f40accdde 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -314,7 +314,10 @@ bool DolphinView::hasSelection() const void DolphinView::clearSelection() { - itemView()->selectionModel()->clear(); + QItemSelectionModel* selModel = itemView()->selectionModel(); + const QModelIndex currentIndex = selModel->currentIndex(); + selModel->setCurrentIndex(currentIndex, QItemSelectionModel::Current | + QItemSelectionModel::Clear); } KFileItemList DolphinView::selectedItems() const @@ -866,8 +869,16 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event) break; case QEvent::KeyPress: - if ((watched == itemView()) && (m_toolTipManager != 0)) { - m_toolTipManager->hideTip(); + if (watched == itemView()) { + if (m_toolTipManager != 0) { + m_toolTipManager->hideTip(); + } + + // clear the selection when Escape has been pressed + QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); + if (keyEvent->key() == Qt::Key_Escape) { + clearSelection(); + } } break; |
