diff options
author | George Hazan <george.hazan@gmail.com> | 2025-05-08 18:10:13 +0300 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2025-05-08 18:10:13 +0300 |
commit | d8048bb134651c70b3f12d5ee0e0199a8248645e (patch) | |
tree | df4f1847096e850e04a3ea03bdffc7c457fbb5ab /src | |
parent | e9b966f99c7b7ca88760c56b394ad261e144c23c (diff) |
for #5010 - inherited visibility for contacts' groups
Diffstat (limited to 'src')
-rw-r--r-- | src/mir_app/src/clcmsgs.cpp | 6 | ||||
-rw-r--r-- | src/mir_app/src/clcutils.cpp | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/mir_app/src/clcmsgs.cpp b/src/mir_app/src/clcmsgs.cpp index 23260fd237..638dab4493 100644 --- a/src/mir_app/src/clcmsgs.cpp +++ b/src/mir_app/src/clcmsgs.cpp @@ -141,7 +141,11 @@ LRESULT fnProcessExternalMessages(HWND hwnd, ClcData *dat, UINT msg, WPARAM wPar case CLM_GETCHECKMARK:
if (!Clist_FindItem(hwnd, dat, wParam, &contact))
return 0;
- return (contact->flags & CONTACTF_CHECKED) != 0;
+
+ if (contact->flags & CONTACTF_CHECKED)
+ return 1;
+
+ return (contact->flags & CONTACTF_HASMEMBERS) ? 2 : 0;
case CLM_GETCOUNT:
return g_clistApi.pfnGetGroupContentsCount(&dat->list, 0);
diff --git a/src/mir_app/src/clcutils.cpp b/src/mir_app/src/clcutils.cpp index 4626c91e14..57d9997037 100644 --- a/src/mir_app/src/clcutils.cpp +++ b/src/mir_app/src/clcutils.cpp @@ -796,12 +796,16 @@ static int GroupHasCheck(ClcGroup *group) bAllChecked = false;
}
- if (res & 1)
+ if (res & 1) {
+ cc->flags |= CONTACTF_HASMEMBERS;
bHasMembers = true;
+ }
+ else cc->flags &= ~CONTACTF_HASMEMBERS;
}
else if (cc->type == CLCIT_CONTACT) {
- bHasMembers = true;
- if (!(cc->flags & CONTACTF_CHECKED))
+ if (cc->flags & CONTACTF_CHECKED)
+ bHasMembers = true;
+ else
bAllChecked = false;
}
}
|