summaryrefslogtreecommitdiff
path: root/plugins/TabSRMM/src
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2014-10-07 16:00:32 +0000
committerGeorge Hazan <george.hazan@gmail.com>2014-10-07 16:00:32 +0000
commitdf0f5de95815eedd34834c9b4becb66c62b63033 (patch)
tree5b65bce56250fe7cbd0f15d035b1e2dcf98923ee /plugins/TabSRMM/src
parent640b434afb85687d2d84419550d4d62b04dc0ec5 (diff)
fix for setting both meta's & sub's status text at a time
git-svn-id: http://svn.miranda-ng.org/main/trunk@10726 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/TabSRMM/src')
-rw-r--r--plugins/TabSRMM/src/msgs.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/plugins/TabSRMM/src/msgs.cpp b/plugins/TabSRMM/src/msgs.cpp
index 1d2f9fc85e..d354ce1922 100644
--- a/plugins/TabSRMM/src/msgs.cpp
+++ b/plugins/TabSRMM/src/msgs.cpp
@@ -113,34 +113,34 @@ static INT_PTR GetWindowData(WPARAM wParam, LPARAM lParam)
}
// service function. Sets a status bar text for a contact
-
-static INT_PTR SetStatusText(WPARAM wParam, LPARAM lParam)
+static void SetStatusTextWorker(TWindowData *dat, StatusTextData *st)
{
- TWindowData *dat;
-
- HWND hwnd = M.FindWindow(wParam);
- if (hwnd != NULL)
- dat = (TWindowData*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
- else {
- SESSION_INFO *si = SM_FindSessionByHCONTACT(wParam);
- if (si == NULL)
- return 1;
-
- dat = si->dat;
- }
-
// delete old custom data
if (dat->sbCustom) {
delete dat->sbCustom;
dat->sbCustom = NULL;
}
- StatusTextData *st = (StatusTextData*)lParam;
if (st != NULL && st->cbSize == sizeof(StatusTextData))
dat->sbCustom = new StatusTextData(*st);
UpdateStatusBar(dat);
+}
+
+static INT_PTR SetStatusText(WPARAM hContact, LPARAM lParam)
+{
+ SESSION_INFO *si = SM_FindSessionByHCONTACT(hContact);
+ if (si == NULL) {
+ HWND hwnd = M.FindWindow(hContact);
+ if (hwnd != NULL)
+ SetStatusTextWorker((TWindowData*)GetWindowLongPtr(hwnd, GWLP_USERDATA), (StatusTextData*)lParam);
+ if (hContact = db_mc_getMeta(hContact))
+ if (hwnd = M.FindWindow(hContact))
+ SetStatusTextWorker((TWindowData*)GetWindowLongPtr(hwnd, GWLP_USERDATA), (StatusTextData*)lParam);
+ }
+ else SetStatusTextWorker(si->dat, (StatusTextData*)lParam);
+
return 0;
}