From: Peter Penz Date: Mon, 1 Dec 2008 20:56:00 +0000 (+0000) Subject: * assure that the keyboard focus is in the view when switching between tabs X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/da5f59b3bbb7646b9a7b395363d4f6c86ad514bc?ds=inline * assure that the keyboard focus is in the view when switching between tabs * assure that the URL navigator gets the focus when it is editable and a new tab is opened by File -> New Tab BUG: 174594 svn path=/trunk/KDE/kdebase/apps/; revision=891367 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 9fe681462..053390d29 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -297,6 +297,13 @@ void DolphinMainWindow::openNewTab() { openNewTab(m_activeViewContainer->url()); m_tabBar->setCurrentIndex(m_viewTab.count() - 1); + + KUrlNavigator* navigator = m_activeViewContainer->urlNavigator(); + if (navigator->isUrlEditable()) { + // if a new tab is opened and the URL is editable, assure that + // the user can edit the URL without manually setting the focus + navigator->setFocus(); + } } void DolphinMainWindow::openNewTab(const KUrl& url) @@ -313,6 +320,7 @@ void DolphinMainWindow::openNewTab(const KUrl& url) ViewTab viewTab; viewTab.splitter = new QSplitter(this); viewTab.primaryView = new DolphinViewContainer(this, viewTab.splitter, url); + viewTab.primaryView->setActive(false); connectViewSignals(viewTab.primaryView); viewTab.primaryView->view()->reload(); @@ -710,7 +718,12 @@ void DolphinMainWindow::setActiveTab(int index) } // hide current tab content - m_viewTab[m_tabIndex].isPrimaryViewActive = m_viewTab[m_tabIndex].primaryView->isActive(); + ViewTab& hiddenTab = m_viewTab[m_tabIndex]; + hiddenTab.isPrimaryViewActive = hiddenTab.primaryView->isActive(); + hiddenTab.primaryView->setActive(false); + if (hiddenTab.secondaryView != 0) { + hiddenTab.secondaryView->setActive(false); + } QSplitter* splitter = m_viewTab[m_tabIndex].splitter; splitter->hide(); m_centralWidgetLayout->removeWidget(splitter);