From c45b62084ce9e54432f8d52c082856e07b5ad28c Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 12 Aug 2020 21:00:03 +0400 Subject: [PATCH] Support hidden custom title on macOS. --- ui/platform/mac/ui_window_mac.mm | 9 +++++++++ ui/platform/mac/ui_window_title_mac.h | 1 + ui/platform/mac/ui_window_title_mac.mm | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/ui/platform/mac/ui_window_mac.mm b/ui/platform/mac/ui_window_mac.mm index f2a1837..8af0e0b 100644 --- a/ui/platform/mac/ui_window_mac.mm +++ b/ui/platform/mac/ui_window_mac.mm @@ -197,6 +197,9 @@ WindowHelper::WindowHelper(not_null window) _private->customTitleHeight()) : nullptr) , _body(Ui::CreateChild(window.get())) { + if (_title->shouldBeHidden()) { + toggleCustomTitle(false); + } init(); } @@ -218,10 +221,16 @@ void WindowHelper::setTitle(const QString &title) { void WindowHelper::setTitleStyle(const style::WindowTitle &st) { if (_title) { _title->setStyle(st); + if (_title->shouldBeHidden()) { + toggleCustomTitle(false); + } } } void WindowHelper::toggleCustomTitle(bool visible) { + if (_title->shouldBeHidden()) { + visible = false; + } if (!_title || _title->isHidden() != visible) { return; } diff --git a/ui/platform/mac/ui_window_title_mac.h b/ui/platform/mac/ui_window_title_mac.h index af31a29..3aac917 100644 --- a/ui/platform/mac/ui_window_title_mac.h +++ b/ui/platform/mac/ui_window_title_mac.h @@ -29,6 +29,7 @@ public: void setText(const QString &text); void setStyle(const style::WindowTitle &st); [[nodiscard]] QString text() const; + [[nodiscard]] bool shouldBeHidden() const; protected: void paintEvent(QPaintEvent *e) override; diff --git a/ui/platform/mac/ui_window_title_mac.mm b/ui/platform/mac/ui_window_title_mac.mm index abd431b..d768122 100644 --- a/ui/platform/mac/ui_window_title_mac.mm +++ b/ui/platform/mac/ui_window_title_mac.mm @@ -38,6 +38,10 @@ void TitleWidget::setStyle(const style::WindowTitle &st) { update(); } +bool TitleWidget::shouldBeHidden() const { + return !_st->height; +} + QString TitleWidget::text() const { return _text; }