From 2b0a0fb6d44f2a4343e9301ef4ece32ac4bdb75b Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 29 May 2010 19:31:46 +0000 Subject: Fix keyboard navigation issues in the column view BUG: 236039 svn path=/trunk/KDE/kdebase/apps/; revision=1132120 --- src/dolphincolumnview.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/dolphincolumnview.cpp') 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(); } -- cgit v1.3