diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/views/dolphinview.cpp | 17 | ||||
| -rw-r--r-- | src/views/dolphinview.h | 6 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 441c7e276..f2f434f46 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -164,6 +164,7 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) : m_container = new DolphinItemListContainer(m_dirLister, this); m_container->setVisibleRoles(QList<QByteArray>() << "name"); + m_container->installEventFilter(this); KItemListController* controller = m_container->controller(); controller->setSelectionBehavior(KItemListController::MultiSelection); @@ -695,10 +696,20 @@ void DolphinView::setCategorizedSorting(bool categorized) emit categorizedSortingChanged(categorized); } -void DolphinView::mouseReleaseEvent(QMouseEvent* event) +bool DolphinView::eventFilter(QObject* watched, QEvent* event) { - QWidget::mouseReleaseEvent(event); - setActive(true); + switch (event->type()) { + case QEvent::FocusIn: + if (watched == m_container) { + setActive(true); + } + break; + + default: + break; + } + + return QWidget::eventFilter(watched, event); } void DolphinView::activate() diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 6ebd91c53..c3981bef4 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -409,6 +409,9 @@ public slots: */ void setCategorizedSorting(bool categorized); + /** Activates the view if the item list container gets focus. */ + virtual bool eventFilter(QObject* watched, QEvent* event); + signals: /** * Is emitted if the view has been activated by e. g. a mouse click. @@ -550,9 +553,6 @@ signals: */ void writeStateChanged(bool isFolderWritable); -protected: - virtual void mouseReleaseEvent(QMouseEvent* event); - private slots: /** * Marks the view as active (DolphinView:isActive() will return true) |
