From 54a27f0906931ea0f4fabbde4b67393836a717e6 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 20 Jun 2022 16:13:24 +0300 Subject: =?UTF-8?q?fixes=20#3077=20(Toaster:=20=D0=BF=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=BE=D0=B7?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=B8=D0=B8=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D1=87=D0=B8=D1=81=D0=BB=D0=B0=20=D0=B2?= =?UTF-8?q?=D1=81=D0=BF=D0=BB=D1=8B=D0=B2=D0=B0=D1=8E=D1=89=D0=B8=D1=85=20?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=BD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/Toaster/src/toast_notification.cpp | 16 ++++++++++------ plugins/Toaster/src/toast_notification.h | 4 +++- plugins/Toaster/src/version.h | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) (limited to 'plugins/Toaster/src') diff --git a/plugins/Toaster/src/toast_notification.cpp b/plugins/Toaster/src/toast_notification.cpp index b8667de1c6..38c04f0066 100644 --- a/plugins/Toaster/src/toast_notification.cpp +++ b/plugins/Toaster/src/toast_notification.cpp @@ -28,6 +28,7 @@ ToastNotification::ToastNotification( ToastNotification::~ToastNotification() { + _signature = 0; if (_pvPopupData != nullptr) CallPopupProc(UM_FREEPLUGINDATA); notifier->Hide(notification.Get()); @@ -92,17 +93,20 @@ HRESULT ToastNotification::OnActivate(_In_ ABI::Windows::UI::Notifications::IToa HRESULT ToastNotification::OnDismiss(_In_ ABI::Windows::UI::Notifications::IToastNotification*, _In_ ABI::Windows::UI::Notifications::IToastDismissedEventArgs *e) { - ABI::Windows::UI::Notifications::ToastDismissalReason tdr; - CHECKHR(e->get_Reason(&tdr)); - if (tdr == ABI::Windows::UI::Notifications::ToastDismissalReason_UserCanceled) - CallPopupProc(WM_CONTEXTMENU); - Destroy(); + if (_signature == TOAST_SIGNATURE) { + ABI::Windows::UI::Notifications::ToastDismissalReason tdr; + CHECKHR(e->get_Reason(&tdr)); + if (tdr == ABI::Windows::UI::Notifications::ToastDismissalReason_UserCanceled) + CallPopupProc(WM_CONTEXTMENU); + Destroy(); + } return S_OK; } HRESULT ToastNotification::OnFail(_In_ ABI::Windows::UI::Notifications::IToastNotification*, _In_ ABI::Windows::UI::Notifications::IToastFailedEventArgs*) { - Destroy(); + if (_signature == TOAST_SIGNATURE) + Destroy(); return S_OK; } diff --git a/plugins/Toaster/src/toast_notification.h b/plugins/Toaster/src/toast_notification.h index 812c361810..55add011e3 100644 --- a/plugins/Toaster/src/toast_notification.h +++ b/plugins/Toaster/src/toast_notification.h @@ -4,10 +4,12 @@ typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification_Windows__CUI__CNotifications__CToastDismissedEventArgs ToastDismissHandler; typedef __FITypedEventHandler_2_Windows__CUI__CNotifications__CToastNotification_Windows__CUI__CNotifications__CToastFailedEventArgs ToastFailHandler; +#define TOAST_SIGNATURE 0xABBABABA + class ToastNotification { private: - + uint32_t _signature = TOAST_SIGNATURE; MCONTACT _hContact; WNDPROC _pfnPopupProc; diff --git a/plugins/Toaster/src/version.h b/plugins/Toaster/src/version.h index 785fe9a3ac..a269ca8021 100644 --- a/plugins/Toaster/src/version.h +++ b/plugins/Toaster/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 11 #define __RELEASE_NUM 2 -#define __BUILD_NUM 0 +#define __BUILD_NUM 1 #include -- cgit v1.2.3