diff options
Diffstat (limited to 'metacontacts/meta_utils.c')
-rw-r--r-- | metacontacts/meta_utils.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/metacontacts/meta_utils.c b/metacontacts/meta_utils.c index 8758c3b..7ece0fe 100644 --- a/metacontacts/meta_utils.c +++ b/metacontacts/meta_utils.c @@ -485,8 +485,8 @@ HANDLE Meta_GetMostOnlineSupporting(HANDLE hMeta, int pflagnum, unsigned long ca proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)most_online_contact, 0);
caps = proto ? CallProtoService(proto, PS_GETCAPS, (WPARAM)pflagnum, 0) : 0;
if(proto && strcmp(proto, "IRC") == 0) caps |= PF1_IM;
- // we are forced to do use default for sending
- if(proto && (caps & capability) == capability && DBGetContactSettingByte(hMeta, META_PROTO, "ForceDefault", 0) && capability != 0) // capability is 0 when we're working out status
+ // we are forced to do use default for sending - '-1' capability indicates no specific capability, but respect 'Force Default'
+ if(proto && DBGetContactSettingByte(hMeta, META_PROTO, "ForceDefault", 0) && capability != 0 && (capability == -1 || (caps & capability) == capability)) // capability is 0 when we're working out status
return most_online_contact;
// a subcontact is being temporarily 'forced' to do sending
|