Removed info button from top bar in profile when menu is empty.

This commit is contained in:
23rd 2022-04-15 14:19:29 +03:00
parent aac21e1f71
commit 47ec5b18b8
2 changed files with 15 additions and 4 deletions

View file

@ -437,6 +437,14 @@ void WrapWidget::checkBeforeClose(Fn<void()> close) {
void WrapWidget::addTopBarMenuButton() { void WrapWidget::addTopBarMenuButton() {
Expects(_topBar != nullptr); Expects(_topBar != nullptr);
{
const auto guard = gsl::finally([&] { _topBarMenu = nullptr; });
showTopBarMenu(true);
if (_topBarMenu->empty()) {
return;
}
}
_topBarMenuToggle.reset(_topBar->addButton( _topBarMenuToggle.reset(_topBar->addButton(
base::make_unique_q<Ui::IconButton>( base::make_unique_q<Ui::IconButton>(
_topBar, _topBar,
@ -444,7 +452,7 @@ void WrapWidget::addTopBarMenuButton() {
? st::infoLayerTopBarMenu ? st::infoLayerTopBarMenu
: st::infoTopBarMenu)))); : st::infoTopBarMenu))));
_topBarMenuToggle->addClickHandler([this] { _topBarMenuToggle->addClickHandler([this] {
showTopBarMenu(); showTopBarMenu(false);
}); });
} }
@ -485,7 +493,7 @@ void WrapWidget::addProfileCallsButton() {
} }
} }
void WrapWidget::showTopBarMenu() { void WrapWidget::showTopBarMenu(bool check) {
if (_topBarMenu) { if (_topBarMenu) {
_topBarMenu->hideMenu(true); _topBarMenu->hideMenu(true);
return; return;
@ -500,7 +508,6 @@ void WrapWidget::showTopBarMenu() {
toggle->setForceRippled(false); toggle->setForceRippled(false);
} }
}); });
_topBarMenuToggle->setForceRippled(true);
const auto addAction = Menu::CreateAddActionCallback(_topBarMenu); const auto addAction = Menu::CreateAddActionCallback(_topBarMenu);
if (key().isDownloads()) { if (key().isDownloads()) {
@ -532,6 +539,10 @@ void WrapWidget::showTopBarMenu() {
return; return;
} }
_topBarMenu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight); _topBarMenu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight);
if (check) {
return;
}
_topBarMenuToggle->setForceRippled(true);
_topBarMenu->popup(_topBarMenuToggle->mapToGlobal( _topBarMenu->popup(_topBarMenuToggle->mapToGlobal(
st::infoLayerTopBarMenuPosition)); st::infoLayerTopBarMenuPosition));
} }

View file

@ -200,7 +200,7 @@ private:
void addTopBarMenuButton(); void addTopBarMenuButton();
void addProfileCallsButton(); void addProfileCallsButton();
void showTopBarMenu(); void showTopBarMenu(bool check);
void deleteAllDownloads(); void deleteAllDownloads();
rpl::variable<Wrap> _wrap; rpl::variable<Wrap> _wrap;