From 85f3b754e39e396249423b5de01795b6eeb97186 Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Sun, 11 Sep 2022 06:25:04 +0300 Subject: [PATCH] [Improvement] Do not hide "mark as read" under Alt+Shift modfiers --- .../SourceFiles/window/window_main_menu.cpp | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index 16471cba9..158fa53f9 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/vertical_layout_reorder.h" #include "ui/text/format_values.h" // Ui::FormatPhone #include "ui/text/text_utilities.h" +#include "ui/text/text_options.h" #include "ui/special_buttons.h" #include "ui/empty_userpic.h" #include "dialogs/ui/dialogs_layout.h" @@ -343,6 +344,7 @@ void MainMenu::AccountButton::paintEvent(QPaintEvent *e) { } void MainMenu::AccountButton::contextMenuEvent(QContextMenuEvent *e) { + /* if (!_menu && IsAltShift(e->modifiers())) { _menu = base::make_unique_q( this, @@ -360,15 +362,29 @@ void MainMenu::AccountButton::contextMenuEvent(QContextMenuEvent *e) { _menu->popup(QCursor::pos()); return; } - if (&_session->account() == &Core::App().activeAccount() || _menu) { + */ + if (_menu) { return; } + const auto isActiveAccount = &_session->account() == &Core::App().activeAccount(); _menu = base::make_unique_q( this, st::popupMenuWithIcons); - _menu->addAction(tr::lng_menu_activate(tr::now), crl::guard(this, [=] { - Core::App().domain().activate(&_session->account()); - }), &st::menuIconProfile); + if (!isActiveAccount) { + _menu->addAction(tr::lng_menu_activate(tr::now), crl::guard(this, [=] { + Core::App().domain().activate(&_session->account()); + }), &st::menuIconProfile); + } + const auto addAction = [&]( + const QString &text, + Fn callback, + const style::icon *icon) { + return _menu->addAction( + text, + crl::guard(this, std::move(callback)), + icon); + }; + MenuAddMarkAsReadAllChatsAction(&_session->data(), addAction); _menu->addAction(tr::lng_settings_logout(tr::now), crl::guard(this, [=] { const auto session = _session; const auto callback = [=](Fn &&close) {