Skip to content

Commit ddbed9e

Browse files
Always show TitleBar if it contains any explicit actions (#720)
1 parent c305432 commit ddbed9e

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/DockAreaWidget.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -872,10 +872,22 @@ void CDockAreaWidget::updateTitleBarVisibility()
872872
bool IsAutoHide = isAutoHide();
873873
if (!CDockManager::testConfigFlag(CDockManager::AlwaysShowTabs))
874874
{
875-
bool Hidden = Container->hasTopLevelDockWidget() && (Container->isFloating()
876-
|| CDockManager::testConfigFlag(CDockManager::HideSingleCentralWidgetTitleBar));
877-
Hidden |= (d->Flags.testFlag(HideSingleWidgetTitleBar) && openDockWidgetsCount() == 1);
878-
Hidden &= !IsAutoHide; // Titlebar must always be visible when auto hidden so it can be dragged
875+
bool Hidden = false;
876+
if (!IsAutoHide) // Titlebar must always be visible when auto hidden so it can be dragged
877+
{
878+
if (Container->isFloating() || CDockManager::testConfigFlag(CDockManager::HideSingleCentralWidgetTitleBar))
879+
{
880+
// Always show title bar if it contains title bar actions
881+
if (CDockWidget* TopLevelWidget = Container->topLevelDockWidget())
882+
Hidden |= TopLevelWidget->titleBarActions().empty();
883+
}
884+
if (!Hidden && d->Flags.testFlag(HideSingleWidgetTitleBar))
885+
{
886+
// Always show title bar if it contains title bar actions
887+
auto DockWidgets = openedDockWidgets();
888+
Hidden |= (DockWidgets.size() == 1) && DockWidgets.front()->titleBarActions().empty();
889+
}
890+
}
879891
d->TitleBar->setVisible(!Hidden);
880892
}
881893

0 commit comments

Comments
 (0)