Blob Blame History Raw
Index: kfile/kurlnavigator.cpp
===================================================================
--- kfile/kurlnavigator.cpp	(revision 856402)
+++ kfile/kurlnavigator.cpp	(revision 856403)
@@ -344,6 +344,7 @@
     // initialize the path box of the traditional view
     m_pathBox = new KUrlComboBox(KUrlComboBox::Both, true, q);
     m_pathBox->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength);
+    m_pathBox->installEventFilter(q);
 
     KUrlCompletion* kurlCompletion = new KUrlCompletion(KUrlCompletion::DirCompletion);
     m_pathBox->setCompletionObject(kurlCompletion);
@@ -1122,6 +1123,16 @@
     QWidget::resizeEvent(event);
 }
 
+bool KUrlNavigator::eventFilter(QObject* watched, QEvent* event)
+{
+    if ((watched == d->m_pathBox) && (event->type() == QEvent::FocusIn)) {
+        requestActivation();
+        setFocus();
+    }
+
+    return QWidget::eventFilter(watched, event);
+}
+
 int KUrlNavigator::historySize() const
 {
     return d->m_history.count();
Index: kfile/kurlnavigator.h
===================================================================
--- kfile/kurlnavigator.h	(revision 856402)
+++ kfile/kurlnavigator.h	(revision 856403)
@@ -312,6 +312,8 @@
     /* @see QWidget::resizeEvent() */
     virtual void resizeEvent(QResizeEvent* event);
 
+    virtual bool eventFilter(QObject* watched, QEvent* event);
+
 private:
     Q_PRIVATE_SLOT(d, void slotReturnPressed(const QString& text))
     Q_PRIVATE_SLOT(d, void slotReturnPressed())