diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp index c8681746b..92fe1df73 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux.cpp @@ -798,6 +798,10 @@ bool SkipFlashBounceForCustom() { return false; } +bool WaitForInputForCustom() { + return true; +} + bool Supported() { return ServiceRegistered || Gio::Application::get_default(); } diff --git a/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp b/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp index 0135a66b5..1209cdb6e 100644 --- a/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp +++ b/Telegram/SourceFiles/platform/linux/notifications_manager_linux_dummy.cpp @@ -25,6 +25,10 @@ bool SkipFlashBounceForCustom() { return false; } +bool WaitForInputForCustom() { + return true; +} + bool Supported() { return false; } diff --git a/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm b/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm index 5905a8c72..761ba6fe3 100644 --- a/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm +++ b/Telegram/SourceFiles/platform/mac/notifications_manager_mac.mm @@ -163,6 +163,10 @@ bool SkipFlashBounceForCustom() { return false; } +bool WaitForInputForCustom() { + return true; +} + bool Supported() { return true; } diff --git a/Telegram/SourceFiles/platform/platform_notifications_manager.h b/Telegram/SourceFiles/platform/platform_notifications_manager.h index 8ab482671..0dd577d97 100644 --- a/Telegram/SourceFiles/platform/platform_notifications_manager.h +++ b/Telegram/SourceFiles/platform/platform_notifications_manager.h @@ -15,6 +15,7 @@ namespace Notifications { [[nodiscard]] bool SkipAudioForCustom(); [[nodiscard]] bool SkipToastForCustom(); [[nodiscard]] bool SkipFlashBounceForCustom(); +[[nodiscard]] bool WaitForInputForCustom(); [[nodiscard]] bool Supported(); [[nodiscard]] bool Enforced(); diff --git a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp index cd4da2862..53106d661 100644 --- a/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp +++ b/Telegram/SourceFiles/platform/win/notifications_manager_win.cpp @@ -369,6 +369,12 @@ bool SkipFlashBounceForCustom() { return SkipToastForCustom(); } +bool WaitForInputForCustom() { + QuerySystemNotificationSettings(); + + return UserNotificationState != QUNS_BUSY; +} + bool Supported() { #ifndef __MINGW32__ if (!Checked) { diff --git a/Telegram/SourceFiles/window/notifications_manager_default.cpp b/Telegram/SourceFiles/window/notifications_manager_default.cpp index 3f78b9b7a..7d3032a5b 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.cpp +++ b/Telegram/SourceFiles/window/notifications_manager_default.cpp @@ -729,7 +729,9 @@ bool Notification::checkLastInput( std::optional lastInputTime) { if (!_waitingForInput) return true; - const auto waitForUserInput = lastInputTime.has_value() + using namespace Platform::Notifications; + const auto waitForUserInput = WaitForInputForCustom() + && lastInputTime.has_value() && (*lastInputTime <= _started); if (!waitForUserInput) {