Replaced DropdownMenu with PopupMenu in top bar of sections.

This commit is contained in:
23rd 2022-03-28 20:59:54 +03:00 committed by John Preston
parent c520cb777c
commit 77659c64e0
3 changed files with 17 additions and 32 deletions

View file

@ -25,7 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "core/core_settings.h" #include "core/core_settings.h"
#include "ui/widgets/buttons.h" #include "ui/widgets/buttons.h"
#include "ui/widgets/dropdown_menu.h" #include "ui/widgets/popup_menu.h"
#include "ui/effects/radial_animation.h" #include "ui/effects/radial_animation.h"
#include "ui/toasts/common_toasts.h" #include "ui/toasts/common_toasts.h"
#include "ui/boxes/report_box.h" // Ui::ReportReason #include "ui/boxes/report_box.h" // Ui::ReportReason
@ -283,8 +283,8 @@ bool TopBarWidget::createMenu(not_null<Ui::IconButton*> button) {
if (!_activeChat.key || _menu) { if (!_activeChat.key || _menu) {
return false; return false;
} }
_menu.create(parentWidget(), st::dropdownMenuWithIcons); _menu.create(this, st::popupMenuWithIcons);
_menu->setHiddenCallback([ _menu->setDestroyedCallback([
weak = Ui::MakeWeak(this), weak = Ui::MakeWeak(this),
weakButton = Ui::MakeWeak(button), weakButton = Ui::MakeWeak(button),
menu = _menu.data()] { menu = _menu.data()] {
@ -296,17 +296,7 @@ bool TopBarWidget::createMenu(not_null<Ui::IconButton*> button) {
} }
} }
}); });
_menu->setShowStartCallback(crl::guard(this, [=, menu = _menu.data()] { button->setForceRippled(true);
if (_menu == menu) {
button->setForceRippled(true);
}
}));
_menu->setHideStartCallback(crl::guard(this, [=, menu = _menu.data()] {
if (_menu == menu) {
button->setForceRippled(false);
}
}));
button->installEventFilter(_menu);
return true; return true;
} }
@ -323,10 +313,10 @@ void TopBarWidget::showPeerMenu() {
if (_menu->empty()) { if (_menu->empty()) {
_menu.destroy(); _menu.destroy();
} else { } else {
_menu->moveToRight( _menu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight);
(parentWidget()->width() - width()) + st::topBarMenuPosition.x(), _menu->popup(mapToGlobal(QPoint(
st::topBarMenuPosition.y()); width() + st::topBarMenuPosition.x(),
_menu->showAnimated(Ui::PanelAnimation::Origin::TopRight); st::topBarMenuPosition.y())));
} }
} }
@ -358,14 +348,10 @@ void TopBarWidget::showGroupCallMenu(not_null<PeerData*> peer) {
: tr::lng_menu_start_group_call_with(tr::now), : tr::lng_menu_start_group_call_with(tr::now),
[=] { callback({ .rtmpNeeded = true }); }, [=] { callback({ .rtmpNeeded = true }); },
&st::menuIconStartStreamWith); &st::menuIconStartStreamWith);
_menu->moveToRight( _menu->setForcedOrigin(Ui::PanelAnimation::Origin::TopRight);
(parentWidget()->width() - width()) _menu->popup(mapToGlobal(QPoint(
+ (width() _groupCall->x() + _groupCall->width() + st::topBarMenuGroupCallSkip,
- _groupCall->x() st::topBarMenuPosition.y())));
- _groupCall->width()
- st::topBarMenuGroupCallSkip),
st::topBarMenuPosition.y());
_menu->showAnimated(Ui::PanelAnimation::Origin::TopRight);
} }
void TopBarWidget::toggleInfoSection() { void TopBarWidget::toggleInfoSection() {
@ -729,8 +715,7 @@ void TopBarWidget::setActiveChat(
updateUnreadBadge(); updateUnreadBadge();
refreshInfoButton(); refreshInfoButton();
if (_menu) { if (_menu) {
_menuToggle->removeEventFilter(_menu); _menu = nullptr;
_menu->hideFast();
} }
updateOnlineDisplay(); updateOnlineDisplay();
updateControlsVisibility(); updateControlsVisibility();

View file

@ -21,7 +21,7 @@ namespace Ui {
class AbstractButton; class AbstractButton;
class RoundButton; class RoundButton;
class IconButton; class IconButton;
class DropdownMenu; class PopupMenu;
class UnreadBadge; class UnreadBadge;
class InfiniteRadialAnimation; class InfiniteRadialAnimation;
enum class ReportReason; enum class ReportReason;
@ -179,7 +179,7 @@ private:
object_ptr<Ui::IconButton> _search; object_ptr<Ui::IconButton> _search;
object_ptr<Ui::IconButton> _infoToggle; object_ptr<Ui::IconButton> _infoToggle;
object_ptr<Ui::IconButton> _menuToggle; object_ptr<Ui::IconButton> _menuToggle;
object_ptr<Ui::DropdownMenu> _menu = { nullptr }; object_ptr<Ui::PopupMenu> _menu = { nullptr };
object_ptr<TWidget> _membersShowArea = { nullptr }; object_ptr<TWidget> _membersShowArea = { nullptr };
rpl::event_stream<bool> _membersShowAreaActive; rpl::event_stream<bool> _membersShowAreaActive;

View file

@ -664,8 +664,8 @@ historyTopBarBack: IconButton(infoTopBarBack) {
width: 52px; width: 52px;
} }
topBarHeight: 54px; topBarHeight: 54px;
topBarMenuPosition: point(-2px, 35px); topBarMenuPosition: point(-6px, 45px);
topBarMenuGroupCallSkip: 40px; topBarMenuGroupCallSkip: 20px;
topBarDuration: 200; topBarDuration: 200;
topBarBackward: icon {{ "title_back", menuIconFg }}; topBarBackward: icon {{ "title_back", menuIconFg }};
topBarForwardAlpha: 0.6; topBarForwardAlpha: 0.6;