From 8fc53a06b7a8163d61c06fbde88ffea904222bdd Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 16 Jan 2019 18:44:21 +0300 Subject: fixes #1772 (Clist_modern: Ctrl+Click on a protocol doesn't filter metacontacts) --- plugins/Clist_modern/src/modern_clcitems.cpp | 11 ++++++++++- plugins/Clist_modern/src/modern_statusbar.cpp | 6 ------ 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'plugins/Clist_modern/src') diff --git a/plugins/Clist_modern/src/modern_clcitems.cpp b/plugins/Clist_modern/src/modern_clcitems.cpp index f22c82dfd4..6f40ab2925 100644 --- a/plugins/Clist_modern/src/modern_clcitems.cpp +++ b/plugins/Clist_modern/src/modern_clcitems.cpp @@ -432,7 +432,16 @@ int CLVM_GetContactHiddenStatus(MCONTACT hContact, char *szProto, ClcData *dat) if (g_CluiData.bFilterEffective & CLVM_FILTER_PROTOS) { char szTemp[64]; mir_snprintf(szTemp, "%s|", szProto); - filterResult = strstr(g_CluiData.protoFilter, szTemp) ? 1 : 0; + if (db_mc_isMeta(hContact)) { + for (int i = db_mc_getSubCount(hContact) - 1; i >= 0; i--) { + mir_snprintf(szTemp, "%s|", GetContactProto(db_mc_getSub(hContact, i))); + if (strstr(g_CluiData.protoFilter, szTemp) != 0) { + filterResult = 1; + break; + } + } + } + else filterResult = strstr(g_CluiData.protoFilter, szTemp) != 0; } if (g_CluiData.bFilterEffective & CLVM_FILTER_GROUPS) { diff --git a/plugins/Clist_modern/src/modern_statusbar.cpp b/plugins/Clist_modern/src/modern_statusbar.cpp index 421ca0d5e5..ff6ee9fa94 100644 --- a/plugins/Clist_modern/src/modern_statusbar.cpp +++ b/plugins/Clist_modern/src/modern_statusbar.cpp @@ -53,12 +53,6 @@ static OBJLIST ProtosData(5); STATUSBARDATA g_StatusBarData = { 0 }; -char* ApendSubSetting(char * buf, int size, char *first, char *second) -{ - mir_snprintf(buf, size, "%sFont%s", first, second); - return buf; -} - int LoadStatusBarData() { g_StatusBarData.perProtoConfig = db_get_b(0, "CLUI", "SBarPerProto", SETTING_SBARPERPROTO_DEFAULT); -- cgit v1.2.3