diff options
author | MikalaiR <nikolay.romanovich@narod.ru> | 2015-08-30 07:11:11 +0000 |
---|---|---|
committer | MikalaiR <nikolay.romanovich@narod.ru> | 2015-08-30 07:11:11 +0000 |
commit | a46baf1a0315e63a3e08b2272622831194cf7b11 (patch) | |
tree | ac11c05e1dffcb5bd77e8ea16097d6ae6f91c677 /plugins | |
parent | a3441bbbcdef9558827f3223511871a1695cee8f (diff) |
Toaster: code cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@15111 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/Toaster/src/services.cpp | 14 | ||||
-rw-r--r-- | plugins/Toaster/src/toast_event_handler.cpp | 5 | ||||
-rw-r--r-- | plugins/Toaster/src/toast_notification.cpp | 3 |
3 files changed, 12 insertions, 10 deletions
diff --git a/plugins/Toaster/src/services.cpp b/plugins/Toaster/src/services.cpp index 03475b5f38..a2747758e8 100644 --- a/plugins/Toaster/src/services.cpp +++ b/plugins/Toaster/src/services.cpp @@ -26,7 +26,6 @@ static void __cdecl OnToastNotificationClicked(void* arg) CallServiceSync(MS_GC_EVENT, WINDOW_VISIBLE, (LPARAM)&gce);
}
}
- lstNotifications.remove(cb->notification);
}
static void ShowToastNotification(TCHAR* text, TCHAR* title, MCONTACT hContact)
@@ -45,15 +44,16 @@ static void ShowToastNotification(TCHAR* text, TCHAR* title, MCONTACT hContact) {
PROTO_AVATAR_INFORMATION pai = { 0 };
pai.hContact = hContact;
- CallProtoService(szProto, PS_GETAVATARINFO, (WPARAM)0, (LPARAM)&pai);
- imagePath = pai.filename[0] ? mir_tstrdup(pai.filename) : nullptr;
+ if (CallProtoService(szProto, PS_GETAVATARINFO, 0, (LPARAM)&pai) == GAIR_SUCCESS)
+ {
+ imagePath = mir_tstrdup(pai.filename);
+ }
}
}
- ToastNotification* notification = new ToastNotification (text, title, imagePath);
- arg->notification = notification;
- notification->Show(new ToastEventHandler(OnToastNotificationClicked, arg));
- lstNotifications.insert(notification);
+ arg->notification = new ToastNotification(text, title, imagePath);
+ arg->notification->Show(new ToastEventHandler(OnToastNotificationClicked, arg));
+ lstNotifications.insert(arg->notification);
}
static INT_PTR CreatePopup(WPARAM wParam, LPARAM)
diff --git a/plugins/Toaster/src/toast_event_handler.cpp b/plugins/Toaster/src/toast_event_handler.cpp index 47ceb8d561..51689bab3e 100644 --- a/plugins/Toaster/src/toast_event_handler.cpp +++ b/plugins/Toaster/src/toast_event_handler.cpp @@ -52,12 +52,16 @@ IFACEMETHODIMP ToastEventHandler::Invoke(_In_ IToastNotification* /* sender */, if (_callback != nullptr)
_callback(_arg);
+ callbackArg *cb = (callbackArg*)_arg;
+ mir_cslock lck(csNotifications);
+ lstNotifications.remove(cb->notification);
return S_OK;
}
IFACEMETHODIMP ToastEventHandler::Invoke(_In_ IToastNotification* /* sender */, _In_ IToastDismissedEventArgs* /* e */)
{
callbackArg *cb = (callbackArg*)_arg;
+ mir_cslock lck(csNotifications);
lstNotifications.remove(cb->notification);
return S_OK;
}
@@ -65,6 +69,7 @@ IFACEMETHODIMP ToastEventHandler::Invoke(_In_ IToastNotification* /* sender */, IFACEMETHODIMP ToastEventHandler::Invoke(_In_ IToastNotification* /* sender */, _In_ IToastFailedEventArgs* /* e */)
{
callbackArg *cb = (callbackArg*)_arg;
+ mir_cslock lck(csNotifications);
lstNotifications.remove(cb->notification);
return S_OK;
}
\ No newline at end of file diff --git a/plugins/Toaster/src/toast_notification.cpp b/plugins/Toaster/src/toast_notification.cpp index c3c4b506f4..47f98dbf28 100644 --- a/plugins/Toaster/src/toast_notification.cpp +++ b/plugins/Toaster/src/toast_notification.cpp @@ -223,9 +223,6 @@ HRESULT ToastNotification::Show(_In_ ToastEventHandler* handler) EventRegistrationToken activatedToken, dismissedToken, failedToken;
Microsoft::WRL::ComPtr<ToastEventHandler> eventHandler(handler);
- hr = notification->add_Activated(eventHandler.Get(), &activatedToken);
- if (FAILED(hr))
- return hr;
notification->add_Activated(eventHandler.Get(), &activatedToken);
notification->add_Dismissed(eventHandler.Get(), &dismissedToken);
|