summaryrefslogtreecommitdiff
path: root/src/modules/srmm/statusicon.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2013-06-18 22:03:24 +0000
committerGeorge Hazan <george.hazan@gmail.com>2013-06-18 22:03:24 +0000
commitbe538312417a60f4fbdfcc81b93744af72aa9df3 (patch)
tree6252b7ed4262dfb2fc0673b5ce9641dd659f5eb9 /src/modules/srmm/statusicon.cpp
parent044b929e389a80fee57ba216ccb6ad5e73fcf03d (diff)
various icon issues
git-svn-id: http://svn.miranda-ng.org/main/trunk@5031 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src/modules/srmm/statusicon.cpp')
-rw-r--r--src/modules/srmm/statusicon.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/srmm/statusicon.cpp b/src/modules/srmm/statusicon.cpp
index 0915df7d46..4be925e5eb 100644
--- a/src/modules/srmm/statusicon.cpp
+++ b/src/modules/srmm/statusicon.cpp
@@ -27,6 +27,10 @@ struct StatusIconChild : public MZeroedObject
{
~StatusIconChild()
{
+ if (hIcon)
+ DestroyIcon(hIcon);
+ if (hIconDisabled)
+ DestroyIcon(hIconDisabled);
mir_free(tszTooltip);
}
@@ -96,6 +100,10 @@ INT_PTR ModifyStatusIcon(WPARAM wParam, LPARAM lParam)
pc->hContact = hContact;
p->arChildren.insert(pc);
}
+ else {
+ if (pc->hIcon)
+ DestroyIcon(pc->hIcon);
+ }
pc->flags = sid->flags;
pc->hIcon = sid->hIcon;
@@ -165,7 +173,10 @@ static INT_PTR GetNthIcon(WPARAM wParam, LPARAM lParam)
memcpy(&res, &p, sizeof(res));
if (pc) {
if (pc->hIcon) res.hIcon = pc->hIcon;
- if (pc->hIconDisabled) res.hIconDisabled = pc->hIconDisabled;
+ if (pc->hIconDisabled)
+ res.hIconDisabled = pc->hIconDisabled;
+ else if (pc->hIcon)
+ res.hIconDisabled = pc->hIcon;
if (pc->tszTooltip) res.tszTooltip = pc->tszTooltip;
res.flags = pc->flags;
}