diff options
| author | Peter Penz <[email protected]> | 2010-05-29 19:31:46 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2010-05-29 19:31:46 +0000 |
| commit | 2b0a0fb6d44f2a4343e9301ef4ece32ac4bdb75b (patch) | |
| tree | bb98c5a3415e2263045edb41b89cf2ef44a8ccc4 /src/dolphincolumnview.cpp | |
| parent | abf29a89efc569db4e51d582eec95d7740db36ad (diff) | |
Fix keyboard navigation issues in the column view
BUG: 236039
svn path=/trunk/KDE/kdebase/apps/; revision=1132120
Diffstat (limited to 'src/dolphincolumnview.cpp')
| -rw-r--r-- | src/dolphincolumnview.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index f5bcd79ee..3f470bdbc 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -153,10 +153,6 @@ DolphinColumnView::~DolphinColumnView() void DolphinColumnView::setActive(bool active) { - if (active && (m_container->focusProxy() != this)) { - m_container->setFocusProxy(this); - } - if (m_active != active) { m_active = active; @@ -309,9 +305,8 @@ void DolphinColumnView::mousePressEvent(QMouseEvent* event) } void DolphinColumnView::keyPressEvent(QKeyEvent* event) -{ +{ QListView::keyPressEvent(event); - requestActivation(); DolphinViewController* controller = m_container->m_dolphinViewController; controller->handleKeyPressEvent(event); @@ -443,9 +438,16 @@ void DolphinColumnView::deactivate() m_container->m_dolphinViewController, SLOT(triggerItem(const QModelIndex&))); } + // It is important to disconnect the connection to requestActivation() temporary, otherwise the internal + // clearing of the selection would result in activating the column again. + disconnect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), + this, SLOT(requestActivation())); const QModelIndex current = selectionModel()->currentIndex(); selectionModel()->clear(); selectionModel()->setCurrentIndex(current, QItemSelectionModel::NoUpdate); + connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), + this, SLOT(requestActivation())); + updateBackground(); } |
