diff options
| -rw-r--r-- | src/dolphinmainwindow.cpp | 10 | ||||
| -rw-r--r-- | src/dolphinmainwindow.h | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 84d22ec4f..d19f8eb1d 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -673,6 +673,7 @@ void DolphinMainWindow::setActiveTab(int index) } // hide current tab content + m_viewTab[m_tabIndex].isPrimaryViewActive = m_viewTab[m_tabIndex].primaryView->isActive(); QSplitter* splitter = m_viewTab[m_tabIndex].splitter; m_centralWidgetLayout->removeWidget(splitter); splitter->hide(); @@ -688,7 +689,8 @@ void DolphinMainWindow::setActiveTab(int index) viewTab.secondaryView->show(); } - setActiveViewContainer(viewTab.primaryView); + setActiveViewContainer(viewTab.isPrimaryViewActive ? viewTab.primaryView : + viewTab.secondaryView); } void DolphinMainWindow::init() @@ -777,7 +779,13 @@ void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* viewContain m_activeViewContainer->setActive(false); m_activeViewContainer = viewContainer; + + // Activating the view container might trigger a recursive setActiveViewContainer() call + // inside DolphinMainWindow::toggleActiveView() when having a split view. Temporary + // disconnect the activated() signal in this case: + disconnect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView())); m_activeViewContainer->setActive(true); + connect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView())); m_actionHandler->setCurrentView(viewContainer->view()); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 2eb282af5..fa02f0821 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -391,7 +391,8 @@ private: struct ViewTab { - ViewTab() : primaryView(0), secondaryView(0), splitter(0) {} + ViewTab() : isPrimaryViewActive(true), primaryView(0), secondaryView(0), splitter(0) {} + bool isPrimaryViewActive; DolphinViewContainer* primaryView; DolphinViewContainer* secondaryView; QSplitter* splitter; |
