summaryrefslogtreecommitdiff
path: root/plugins/Toaster/src/toast_notification.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Toaster/src/toast_notification.cpp')
-rw-r--r--plugins/Toaster/src/toast_notification.cpp16
1 files changed, 10 insertions, 6 deletions
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;
}