summaryrefslogtreecommitdiff
path: root/metacontacts/meta_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'metacontacts/meta_utils.c')
-rw-r--r--metacontacts/meta_utils.c39
1 files changed, 27 insertions, 12 deletions
diff --git a/metacontacts/meta_utils.c b/metacontacts/meta_utils.c
index 38a9e69..5946582 100644
--- a/metacontacts/meta_utils.c
+++ b/metacontacts/meta_utils.c
@@ -414,18 +414,7 @@ BOOL Meta_Assign(HANDLE src, HANDLE dest, BOOL set_as_default)
Meta_FixStatus(dest);
// if the new contact is the most online contact with avatar support, get avatar info
- most_online = Meta_GetMostOnlineSupporting(dest, PFLAGNUM_4, PF4_AVATARS);
- if(most_online == src) {
- PROTO_AVATAR_INFORMATION AI;
-
- AI.cbSize = sizeof(AI);
- AI.hContact = dest;
- AI.format = PA_FORMAT_UNKNOWN;
- strcpy(AI.filename, "X");
-
- if((int)CallProtoService(META_PROTO, PS_GETAVATARINFO, 0, (LPARAM)&AI) == GAIR_SUCCESS)
- DBWriteContactSettingString(dest, "ContactPhoto", "File",AI.filename);
- }
+ Meta_UpdateAvatar(dest);
// Hide the contact
Meta_SetGroup(src);
@@ -1713,5 +1702,31 @@ INT_PTR Meta_IsEnabled() {
return DBGetContactSettingByte(0, META_PROTO, "Enabled", 1) && (meta_group_hack_disabled || DBGetContactSettingByte(NULL, "CList", "UseGroups", 1));
}
+void Meta_UpdateAvatar(HANDLE hMeta)
+{
+ HANDLE most_online = Meta_GetMostOnlineSupporting(hMeta, PFLAGNUM_4, PF4_AVATARS);
+ if (most_online)
+ {
+ PROTO_AVATAR_INFORMATIONW AI;
+
+ AI.cbSize = sizeof(AI);
+ AI.hContact = hMeta;
+ AI.format = PA_FORMAT_UNKNOWN;
+ wcscpy(AI.filename, L"X");
+
+ if (CallProtoService(META_PROTO, PS_GETAVATARINFOW, 0, (LPARAM)&AI) == GAIR_SUCCESS)
+ DBWriteContactSettingWString(hMeta, "ContactPhoto", "File", AI.filename);
+ else
+ {
+ PROTO_AVATAR_INFORMATION AI;
+ AI.cbSize = sizeof(AI);
+ AI.hContact = hMeta;
+ AI.format = PA_FORMAT_UNKNOWN;
+ strcpy(AI.filename, "X");
+ if (CallProtoService(META_PROTO, PS_GETAVATARINFO, 0, (LPARAM)&AI) == GAIR_SUCCESS)
+ DBWriteContactSettingString(hMeta, "ContactPhoto", "File", AI.filename);
+ }
+ }
+}