diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 29d5662..94fac48 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -4160,6 +4160,21 @@ TREEVIEW_RButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam) static LRESULT TREEVIEW_RButtonUp(const TREEVIEW_INFO *infoPtr, const POINT *pPt) { + TVHITTESTINFO ht; + + ht.pt = *pPt; + + TREEVIEW_HitTest(infoPtr, &ht); + + if (ht.hItem) + { + /* Change to screen coordinate for WM_CONTEXTMENU */ + ClientToScreen(infoPtr->hwnd, &ht.pt); + + /* Send a WM_CONTEXTMENU message in response to the RBUTTONUP */ + SendMessageW(infoPtr->hwnd, WM_CONTEXTMENU, + (WPARAM)infoPtr->hwnd, MAKELPARAM(ht.pt.x, ht.pt.y)); + } return 0; }