diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 2a9fff0f4e38a8ef15e65314802fbaf21f5dcfc1..f68c5da7d06772f8684ddcb53f8244774e098153 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -625,6 +625,7 @@ void MainWindow::registerDefaultActions()
     // Toggle Sidebar Action
     m_toggleSideBarAction = new QAction(QIcon(Constants::ICON_TOGGLE_SIDEBAR),
                                         tr("Toggle Sidebar"), this);
+    m_toggleSideBarAction->setCheckable(true);
     cmd = am->registerAction(m_toggleSideBarAction, Constants::TOGGLE_SIDEBAR, m_globalContext);
 #ifdef Q_OS_MAC
     cmd->setDefaultKeySequence(QKeySequence("Ctrl+0"));
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 9bbb4323d21bbb12e18a50f013a474fa2e4bc648..412559a9b0aecd1c2c22d19554776d8de37fe439 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -166,6 +166,7 @@ int NavigationWidget::storedWidth()
 void NavigationWidget::placeHolderChanged(NavigationWidgetPlaceHolder *holder)
 {
     m_toggleSideBarAction->setEnabled(holder);
+    m_toggleSideBarAction->setChecked(holder && isShown());
 }
 
 void NavigationWidget::resizeEvent(QResizeEvent *re)
@@ -281,8 +282,12 @@ void NavigationWidget::setShown(bool b)
     if (m_shown == b)
         return;
     m_shown = b;
-    if (NavigationWidgetPlaceHolder::m_current)
+    if (NavigationWidgetPlaceHolder::m_current) {
         NavigationWidgetPlaceHolder::m_current->setVisible(m_shown && !m_suppressed);
+        m_toggleSideBarAction->setChecked(m_shown);
+    } else {
+        m_toggleSideBarAction->setChecked(false);
+    }
 }
 
 bool NavigationWidget::isShown() const