diff --git a/src/plugins/coreplugin/imode.cpp b/src/plugins/coreplugin/imode.cpp index 81190327c98..dce4d4a7574 100644 --- a/src/plugins/coreplugin/imode.cpp +++ b/src/plugins/coreplugin/imode.cpp @@ -190,6 +190,7 @@ Utils::FancyMainWindow *IMode::mainWindow() void IMode::setMainWindow(Utils::FancyMainWindow *mw) { m_d->m_mainWindow = mw; + emit ModeManager::instance()->currentMainWindowChanged(); } bool IMode::isEnabled() const diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp index cebc5f8422d..424ec4b555c 100644 --- a/src/plugins/coreplugin/modemanager.cpp +++ b/src/plugins/coreplugin/modemanager.cpp @@ -322,6 +322,7 @@ void ModeManager::currentTabChanged(int index) oldMode = d->m_modes.at(d->m_oldCurrent); d->m_oldCurrent = index; emit currentModeChanged(mode->id(), oldMode ? oldMode->id() : Id()); + emit currentMainWindowChanged(); } /*! diff --git a/src/plugins/coreplugin/modemanager.h b/src/plugins/coreplugin/modemanager.h index 96b8b252c23..09a33566f06 100644 --- a/src/plugins/coreplugin/modemanager.h +++ b/src/plugins/coreplugin/modemanager.h @@ -57,6 +57,8 @@ signals: // the default argument '=0' is important for connects without the oldMode argument. void currentModeChanged(Utils::Id mode, Utils::Id oldMode = {}); + void currentMainWindowChanged(); + private: explicit ModeManager(Internal::FancyTabWidget *modeStack); ~ModeManager() override; diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index b6961f8612a..4fc33544fcd 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -194,7 +194,7 @@ NavigationWidget::NavigationWidget(QAction *toggleSideBarAction, Side side) : NavigationWidgetPrivate::s_instanceRight = this; connect(ModeManager::instance(), - &ModeManager::currentModeChanged, + &ModeManager::currentMainWindowChanged, this, &NavigationWidget::updateMode); }