diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index a7587a91c..73223aaa5 100644
--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -48,6 +48,7 @@
 #include <QLoggingCategory>
 #include <QMimeData>
 #include <QTimer>
+#include <QToolButton>
 #include <QUrl>
 #include <QVBoxLayout>
 
@@ -115,6 +116,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
 
     m_searchBox = new DolphinSearchBox(this);
     m_searchBox->hide();
+    m_searchBox->setUrlNavigator(m_urlNavigator);
     connect(m_searchBox, &DolphinSearchBox::activated, this, &DolphinViewContainer::activate);
     connect(m_searchBox, &DolphinSearchBox::closeRequest, this, &DolphinViewContainer::closeSearchBox);
     connect(m_searchBox, &DolphinSearchBox::searchRequest, this, &DolphinViewContainer::startSearching);
@@ -157,6 +159,7 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
 
     // Initialize the main view
     m_view = new DolphinView(url, this);
+    m_searchBox->setView(m_view);
     connect(m_view, &DolphinView::urlChanged,
             m_filterBar, &FilterBar::slotUrlChanged);
     connect(m_view, &DolphinView::urlChanged,
@@ -383,6 +386,8 @@ bool DolphinViewContainer::isFilterBarVisible() const
     return m_filterBar->isVisible();
 }
 
+#include <iostream>
+
 void DolphinViewContainer::setSearchModeEnabled(bool enabled)
 {
     m_searchBox->setVisible(enabled);
@@ -413,6 +418,12 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
         m_urlNavigator->setLocationUrl(url);
     }
 
+    if (enabled) {
+        // setTabOrder(m_searchBox, m_navigatorWidget);
+        std::cout << "tabOrder\n";
+        setTabOrder(static_cast<QWidget *>(m_searchBox->getLastButton()), m_urlNavigator);
+    }
+
     m_searchModeEnabled = enabled;
 
     emit searchModeEnabledChanged(enabled);
diff --git a/src/search/dolphinsearchbox.cpp b/src/search/dolphinsearchbox.cpp
index 23f520de1..ada5f3db0 100644
--- a/src/search/dolphinsearchbox.cpp
+++ b/src/search/dolphinsearchbox.cpp
@@ -23,6 +23,7 @@
 #include "dolphin_searchsettings.h"
 #include "dolphinfacetswidget.h"
 #include "dolphinquery.h"
+#include "views/dolphinview.h"
 #include "panels/places/placesitemmodel.h"
 
 #include <KLocalizedString>
@@ -219,6 +220,35 @@ void DolphinSearchBox::keyReleaseEvent(QKeyEvent* event)
             m_searchInput->clear();
         }
     }
+    else if (event->key() == Qt::Key_Down) {
+        auto newEvent = new QKeyEvent(QEvent::KeyRelease, Qt::Key_Down, Qt::NoModifier);
+#if 0
+        Q_ASSERT(m_urlNavigator);
+        qApp->postEvent(m_urlNavigator, newEvent);
+#else
+        Q_ASSERT(m_view);
+        m_view->setActive(true);
+        m_view->setFocus();
+#if 0
+        m_view->activate();
+#endif
+#if 1
+        qApp->postEvent(m_view, newEvent);
+#endif
+#endif
+    }
+}
+
+void DolphinSearchBox::setView(DolphinView * v)
+{
+    m_view = v;
+}
+
+void DolphinSearchBox::setUrlNavigator(KUrlNavigator * nav)
+{
+#if 0
+    m_urlNavigator = nav;
+#endif
 }
 
 bool DolphinSearchBox::eventFilter(QObject* obj, QEvent* event)
@@ -337,6 +367,7 @@ void DolphinSearchBox::saveSettings()
     SearchSettings::setWhat(m_fileNameButton->isChecked() ? QStringLiteral("FileName") : QStringLiteral("Content"));
     SearchSettings::self()->save();
 }
+#include <iostream>
 
 void DolphinSearchBox::init()
 {
@@ -405,6 +436,7 @@ void DolphinSearchBox::init()
     searchLocationGroup->addButton(m_everywhereButton);
 
     auto moreSearchToolsButton = new QToolButton(this);
+    m_moreSearchToolsButton = moreSearchToolsButton;
     moreSearchToolsButton->setAutoRaise(true);
     moreSearchToolsButton->setPopupMode(QToolButton::InstantPopup);
     moreSearchToolsButton->setIcon(QIcon::fromTheme("arrow-down-double"));
@@ -467,6 +499,17 @@ void DolphinSearchBox::init()
     m_startSearchTimer->setSingleShot(true);
     m_startSearchTimer->setInterval(1000);
     connect(m_startSearchTimer, &QTimer::timeout, this, &DolphinSearchBox::emitSearchRequest);
+#if 0
+    std::cout << "tabOrder dolphin/src/search/dolphinsearchbox.cpp\n";
+    setTabOrder(moreSearchToolsButton, m_navigatorWidget);
+#endif
+}
+
+QToolButton * DolphinSearchBox::getLastButton()
+{
+    Q_ASSERT(m_moreSearchToolsButton);
+
+    return m_moreSearchToolsButton;
 }
 
 QUrl DolphinSearchBox::balooUrlForSearching() const
diff --git a/src/search/dolphinsearchbox.h b/src/search/dolphinsearchbox.h
index 5fef4ec5a..4b0175258 100644
--- a/src/search/dolphinsearchbox.h
+++ b/src/search/dolphinsearchbox.h
@@ -22,11 +22,13 @@
 
 #include <QUrl>
 #include <QWidget>
+#include <KUrlNavigator>
 
 class DolphinFacetsWidget;
 class DolphinQuery;
 class QLineEdit;
 class KSeparator;
+class DolphinView;
 class QToolButton;
 class QScrollArea;
 class QLabel;
@@ -99,6 +101,10 @@ public:
      */
     bool isActive() const;
 
+    QToolButton * getLastButton();
+    void setUrlNavigator(KUrlNavigator * nav);
+    void setView(DolphinView * v);
+
 protected:
     bool event(QEvent* event) override;
     void showEvent(QShowEvent* event) override;
@@ -175,7 +181,13 @@ private:
     KSeparator* m_separator;
     QToolButton* m_fromHereButton;
     QToolButton* m_everywhereButton;
+    QToolButton* m_moreSearchToolsButton;
     DolphinFacetsWidget* m_facetsWidget;
+#if 0
+    KUrlNavigator *m_urlNavigator;
+#else
+    DolphinView* m_view;
+#endif
 
     QUrl m_searchPath;
     QScopedPointer<KMoreToolsMenuFactory> m_menuFactory;
