From e4c16ccba4ea04fb50817507bbcfb7e801400b9c Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 18 Jan 2023 12:11:18 +0400 Subject: [PATCH] Create tray icon without a parent. --- Telegram/SourceFiles/platform/linux/tray_linux.cpp | 14 ++------------ Telegram/SourceFiles/platform/mac/tray_mac.mm | 8 +------- Telegram/SourceFiles/platform/win/tray_win.cpp | 8 +------- 3 files changed, 4 insertions(+), 26 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.cpp b/Telegram/SourceFiles/platform/linux/tray_linux.cpp index be02e5e0e..754b0b5c2 100644 --- a/Telegram/SourceFiles/platform/linux/tray_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/tray_linux.cpp @@ -23,16 +23,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Platform { -namespace { - -[[nodiscard]] QWidget *Parent() { - Expects(Core::App().activePrimaryWindow() != nullptr); - - return Core::App().activePrimaryWindow()->widget(); -} - -} // namespace - class IconGraphic final { public: explicit IconGraphic(); @@ -335,7 +325,7 @@ void Tray::createIcon() { const auto counter = Core::App().unreadBadge(); const auto muted = Core::App().unreadBadgeMuted(); - _icon = base::make_unique_q(Parent()); + _icon = base::make_unique_q(nullptr); _icon->setIcon(_iconGraphic->trayIcon( _iconGraphic->systemIcon( iconThemeName, @@ -405,7 +395,7 @@ void Tray::updateIcon() { void Tray::createMenu() { if (!_menu) { - _menu = base::make_unique_q(Parent()); + _menu = base::make_unique_q(nullptr); } if (!_menuXEmbed) { _menuXEmbed = base::make_unique_q(nullptr); diff --git a/Telegram/SourceFiles/platform/mac/tray_mac.mm b/Telegram/SourceFiles/platform/mac/tray_mac.mm index 44c3bf7ea..beefa1100 100644 --- a/Telegram/SourceFiles/platform/mac/tray_mac.mm +++ b/Telegram/SourceFiles/platform/mac/tray_mac.mm @@ -222,12 +222,6 @@ void UpdateIcon(const NSStatusItem *status) { status.button.imageScaling = NSImageScaleProportionallyDown; } -[[nodiscard]] QWidget *Parent() { - Expects(Core::App().activePrimaryWindow() != nullptr); - - return Core::App().activePrimaryWindow()->widget(); -} - } // namespace class NativeIcon final { @@ -366,7 +360,7 @@ void Tray::updateIcon() { void Tray::createMenu() { if (!_menu) { - _menu = base::make_unique_q(Parent()); + _menu = base::make_unique_q(nullptr); } } diff --git a/Telegram/SourceFiles/platform/win/tray_win.cpp b/Telegram/SourceFiles/platform/win/tray_win.cpp index 9013cd743..13a30858c 100644 --- a/Telegram/SourceFiles/platform/win/tray_win.cpp +++ b/Telegram/SourceFiles/platform/win/tray_win.cpp @@ -89,12 +89,6 @@ constexpr auto kTooltipDelay = crl::time(10000); return result; } -[[nodiscard]] QWidget *Parent() { - Expects(Core::App().activePrimaryWindow() != nullptr); - - return Core::App().activePrimaryWindow()->widget(); -} - } // namespace Tray::Tray() { @@ -102,7 +96,7 @@ Tray::Tray() { void Tray::createIcon() { if (!_icon) { - _icon = base::make_unique_q(Parent()); + _icon = base::make_unique_q(nullptr); updateIcon(); _icon->setToolTip(AppName.utf16()); using Reason = QSystemTrayIcon::ActivationReason;