From 47ec5b18b8ffa8e06f0e86feb75e620f974cfbf7 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 15 Apr 2022 14:19:29 +0300 Subject: [PATCH] Removed info button from top bar in profile when menu is empty. --- Telegram/SourceFiles/info/info_wrap_widget.cpp | 17 ++++++++++++++--- Telegram/SourceFiles/info/info_wrap_widget.h | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/info/info_wrap_widget.cpp b/Telegram/SourceFiles/info/info_wrap_widget.cpp index f20ffd682..e5c389998 100644 --- a/Telegram/SourceFiles/info/info_wrap_widget.cpp +++ b/Telegram/SourceFiles/info/info_wrap_widget.cpp @@ -437,6 +437,14 @@ void WrapWidget::checkBeforeClose(Fn close) { void WrapWidget::addTopBarMenuButton() { Expects(_topBar != nullptr); + { + const auto guard = gsl::finally([&] { _topBarMenu = nullptr; }); + showTopBarMenu(true); + if (_topBarMenu->empty()) { + return; + } + } + _topBarMenuToggle.reset(_topBar->addButton( base::make_unique_q( _topBar, @@ -444,7 +452,7 @@ void WrapWidget::addTopBarMenuButton() { ? st::infoLayerTopBarMenu : st::infoTopBarMenu)))); _topBarMenuToggle->addClickHandler([this] { - showTopBarMenu(); + showTopBarMenu(false); }); } @@ -485,7 +493,7 @@ void WrapWidget::addProfileCallsButton() { } } -void WrapWidget::showTopBarMenu() { +void WrapWidget::showTopBarMenu(bool check) { if (_topBarMenu) { _topBarMenu->hideMenu(true); return; @@ -500,7 +508,6 @@ void WrapWidget::showTopBarMenu() { toggle->setForceRippled(false); } }); - _topBarMenuToggle->setForceRippled(true); const auto addAction = Menu::CreateAddActionCallback(_topBarMenu); if (key().isDownloads()) { @@ -532,6 +539,10 @@ void WrapWidget::showTopBarMenu() { return; } _topBarMenu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight); + if (check) { + return; + } + _topBarMenuToggle->setForceRippled(true); _topBarMenu->popup(_topBarMenuToggle->mapToGlobal( st::infoLayerTopBarMenuPosition)); } diff --git a/Telegram/SourceFiles/info/info_wrap_widget.h b/Telegram/SourceFiles/info/info_wrap_widget.h index 6141321ce..8c5355831 100644 --- a/Telegram/SourceFiles/info/info_wrap_widget.h +++ b/Telegram/SourceFiles/info/info_wrap_widget.h @@ -200,7 +200,7 @@ private: void addTopBarMenuButton(); void addProfileCallsButton(); - void showTopBarMenu(); + void showTopBarMenu(bool check); void deleteAllDownloads(); rpl::variable _wrap;