diff options
Diffstat (limited to 'src/mir_core')
-rw-r--r-- | src/mir_core/src/ui_utils.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/mir_core/src/ui_utils.cpp b/src/mir_core/src/ui_utils.cpp index d045182de1..24f2cc5d6d 100644 --- a/src/mir_core/src/ui_utils.cpp +++ b/src/mir_core/src/ui_utils.cpp @@ -1561,21 +1561,28 @@ BOOL CCtrlTreeView::OnNotify(int, NMHDR *pnmh) return TRUE;
case TVN_KEYDOWN:
- if (m_bCheckBox && evt.nmtvkey->wVKey == VK_SPACE)
- InvertCheck(GetSelection()); + if (evt.nmtvkey->wVKey == VK_SPACE) {
+ if (m_bCheckBox)
+ InvertCheck(GetSelection()); + NotifyChange();
+ } OnKeyDown(&evt);
return TRUE;
}
- if (m_bCheckBox && pnmh->code == NM_CLICK) {
+ if (pnmh->code == NM_CLICK) {
TVHITTESTINFO hti;
hti.pt.x = (short)LOWORD(GetMessagePos());
hti.pt.y = (short)HIWORD(GetMessagePos());
ScreenToClient(pnmh->hwndFrom, &hti.pt); - if (HitTest(&hti)) - if (hti.flags & TVHT_ONITEMICON) - InvertCheck(hti.hItem); + if (HitTest(&hti)) { + if (m_bCheckBox && (hti.flags & TVHT_ONITEMICON) || !m_bCheckBox && (hti.flags & TVHT_ONITEMSTATEICON)) { + if (m_bCheckBox) + InvertCheck(hti.hItem); + NotifyChange();
+ }
+ } }
return FALSE;
@@ -1591,8 +1598,6 @@ void CCtrlTreeView::InvertCheck(HTREEITEM hItem) tvi.iImage = tvi.iSelectedImage = !tvi.iImage; SetItem(&tvi); - - NotifyChange();
}
void CCtrlTreeView::TranslateItem(HTREEITEM hItem)
|