From 3f0190668d98bfc47176c56a5cb9217a7bb265bb Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 13 Jul 2026 10:25:28 +0300 Subject: [PATCH] Added ability to close emoji status panel with main menu. --- .../info/profile/info_profile_emoji_status_panel.cpp | 6 ++++++ .../info/profile/info_profile_emoji_status_panel.h | 1 + Telegram/SourceFiles/window/window_main_menu.cpp | 4 ++++ Telegram/SourceFiles/window/window_main_menu.h | 1 + 4 files changed, 12 insertions(+) diff --git a/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.cpp b/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.cpp index e85f1866ee..890a755ae2 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.cpp +++ b/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.cpp @@ -174,6 +174,12 @@ void EmojiStatusPanel::show(Descriptor &&descriptor) { _panel->toggleAnimated(); } +void EmojiStatusPanel::hideFast() { + if (_panel) { + _panel->hideFast(); + } +} + bool EmojiStatusPanel::hasFocus() const { return _panel && Ui::InFocusChain(_panel.get()); } diff --git a/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.h b/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.h index 16040e0258..48e854ed6f 100644 --- a/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.h +++ b/Telegram/SourceFiles/info/profile/info_profile_emoji_status_panel.h @@ -59,6 +59,7 @@ public: bool withCollectibles = false; }; void show(Descriptor &&descriptor); + void hideFast(); void repaint(); struct CustomChosen { diff --git a/Telegram/SourceFiles/window/window_main_menu.cpp b/Telegram/SourceFiles/window/window_main_menu.cpp index 89ecba366f..d096e390e3 100644 --- a/Telegram/SourceFiles/window/window_main_menu.cpp +++ b/Telegram/SourceFiles/window/window_main_menu.cpp @@ -846,6 +846,10 @@ bool MainMenu::eventHook(QEvent *event) { return RpWidget::eventHook(event); } +void MainMenu::hideEvent(QHideEvent *e) { + _emojiStatusPanel->hideFast(); +} + void MainMenu::paintEvent(QPaintEvent *e) { auto p = Painter(this); const auto clip = e->rect(); diff --git a/Telegram/SourceFiles/window/window_main_menu.h b/Telegram/SourceFiles/window/window_main_menu.h index 36a3087a05..281b747856 100644 --- a/Telegram/SourceFiles/window/window_main_menu.h +++ b/Telegram/SourceFiles/window/window_main_menu.h @@ -61,6 +61,7 @@ private: bool eventHook(QEvent *event) override; void paintEvent(QPaintEvent *e) override; void resizeEvent(QResizeEvent *e) override; + void hideEvent(QHideEvent *e) override; void doSetInnerFocus() override { setFocus();