mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 00:11:21 +00:00
- When the filterbar has been activated as startup setting, still the view should get the keyboard focus.
- Assure that the keyboard focus does not get lost when a tab is opened in background. CCBUG: 183394 svn path=/trunk/KDE/kdebase/apps/; revision=1072868
This commit is contained in:
parent
199f9af8b6
commit
cc06711735
|
@ -397,6 +397,8 @@ void DolphinMainWindow::openNewTab()
|
|||
|
||||
void DolphinMainWindow::openNewTab(const KUrl& url)
|
||||
{
|
||||
QWidget* focusWidget = QApplication::focusWidget();
|
||||
|
||||
if (m_viewTab.count() == 1) {
|
||||
// Only one view is open currently and hence no tab is shown at
|
||||
// all. Before creating a tab for 'url', provide a tab for the current URL.
|
||||
|
@ -429,6 +431,12 @@ void DolphinMainWindow::openNewTab(const KUrl& url)
|
|||
m_viewTab[tabIndex].secondaryView->setActive(true);
|
||||
m_viewTab[tabIndex].isPrimaryViewActive = false;
|
||||
}
|
||||
|
||||
if (focusWidget != 0) {
|
||||
// The DolphinViewContainer grabbed the keyboard focus. As the tab is opened
|
||||
// in background, assure that the previous focused widget gets the focus back.
|
||||
focusWidget->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
void DolphinMainWindow::activateNextTab()
|
||||
|
@ -487,6 +495,14 @@ void DolphinMainWindow::toggleActiveView()
|
|||
setActiveViewContainer(m_activeViewContainer == right ? left : right);
|
||||
}
|
||||
|
||||
void DolphinMainWindow::showEvent(QShowEvent* event)
|
||||
{
|
||||
KXmlGuiWindow::showEvent(event);
|
||||
if (!event->spontaneous()) {
|
||||
m_activeViewContainer->view()->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
void DolphinMainWindow::closeEvent(QCloseEvent* event)
|
||||
{
|
||||
DolphinSettings& settings = DolphinSettings::instance();
|
||||
|
|
|
@ -165,6 +165,9 @@ signals:
|
|||
void requestItemInfo(const KFileItem& item);
|
||||
|
||||
protected:
|
||||
/** @see QWidget::showEvent() */
|
||||
virtual void showEvent(QShowEvent* event);
|
||||
|
||||
/** @see QMainWindow::closeEvent() */
|
||||
virtual void closeEvent(QCloseEvent* event);
|
||||
|
||||
|
|
Loading…
Reference in a new issue