diff options
author | George Hazan <ghazan@miranda.im> | 2023-03-28 14:14:31 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2023-03-28 14:14:31 +0300 |
commit | 3986f667cb0f3fffeaee637dcee097b582e240ca (patch) | |
tree | 5d764d800adad5a18cda818bd14599b1538e765a /src | |
parent | 4e37d6e13611fb0a27aa35f0c06f221a37cf56f1 (diff) |
CCtrlTreeView: OnBeginDrag / OnEndDrag callbacks became boolean
Diffstat (limited to 'src')
-rw-r--r-- | src/mir_app/src/menu_options.cpp | 6 | ||||
-rw-r--r-- | src/mir_core/src/Windows/CCtrlTreeView.cpp | 22 |
2 files changed, 17 insertions, 11 deletions
diff --git a/src/mir_app/src/menu_options.cpp b/src/mir_app/src/menu_options.cpp index c2dfae7c87..3c6ce3cf55 100644 --- a/src/mir_app/src/menu_options.cpp +++ b/src/mir_app/src/menu_options.cpp @@ -572,12 +572,14 @@ public: m_customName.Enable(true);
}
- void onMenuItemBeginDrag(CCtrlTreeView::TEventInfo *evt)
+ bool onMenuItemBeginDrag(CCtrlTreeView::TEventInfo *evt)
{
MenuItemOptData *p = (MenuItemOptData*)evt->nmtv->itemNew.lParam;
if (p->pimi != nullptr)
if (p->pimi->mi.flags & CMIF_UNMOVABLE)
- evt->nmhdr->code = 0; // reject an attempt to change item's position
+ return false; // reject an attempt to change item's position
+
+ return true;
}
};
diff --git a/src/mir_core/src/Windows/CCtrlTreeView.cpp b/src/mir_core/src/Windows/CCtrlTreeView.cpp index 92ad166f91..4f4aeabf2f 100644 --- a/src/mir_core/src/Windows/CCtrlTreeView.cpp +++ b/src/mir_core/src/Windows/CCtrlTreeView.cpp @@ -161,12 +161,16 @@ LRESULT CCtrlTreeView::CustomWndProc(UINT msg, WPARAM wParam, LPARAM lParam) m_bDragging = false;
ReleaseCapture();
- hti.pt.x = (short)LOWORD(lParam);
- hti.pt.y = (short)HIWORD(lParam) - GetItemHeight() / 2;
+ hti.pt.x = GET_X_LPARAM(lParam);
+ hti.pt.y = GET_Y_LPARAM(lParam) - GetItemHeight() / 2;
HitTest(&hti);
if (m_hDragItem == hti.hItem)
break;
+ TEventInfo evt = { this, (LPNMHDR)&hti};
+ if (!OnEndDrag.Check(&evt))
+ break;
+
if (hti.flags & TVHT_ABOVE)
hti.hItem = TVI_FIRST;
else if (hti.flags & TVHT_BELOW)
@@ -288,14 +292,14 @@ BOOL CCtrlTreeView::OnNotify(int, NMHDR *pnmh) case TVN_SINGLEEXPAND: OnSingleExpand(&evt); return TRUE;
case TVN_BEGINDRAG:
- OnBeginDrag(&evt);
-
// user-defined can clear the event code to disable dragging
- if (m_bDndEnabled && pnmh->code) {
- ::SetCapture(m_hwnd);
- m_bDragging = true;
- m_hDragItem = evt.nmtv->itemNew.hItem;
- SelectItem(m_hDragItem);
+ if (m_bDndEnabled) {
+ if (OnBeginDrag.Check(&evt)) {
+ ::SetCapture(m_hwnd);
+ m_bDragging = true;
+ m_hDragItem = evt.nmtv->itemNew.hItem;
+ SelectItem(m_hDragItem);
+ }
}
return TRUE;
|