Determine whether to do label edit before sending NM_CLICK.
This commit is contained in:
parent
02e850efdf
commit
847c81df89
|
@ -3821,7 +3821,7 @@ TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
|
||||||
{
|
{
|
||||||
HWND hwnd = infoPtr->hwnd;
|
HWND hwnd = infoPtr->hwnd;
|
||||||
TVHITTESTINFO ht;
|
TVHITTESTINFO ht;
|
||||||
BOOL bTrack;
|
BOOL bTrack, bDoLabelEdit;
|
||||||
HTREEITEM tempItem;
|
HTREEITEM tempItem;
|
||||||
|
|
||||||
/* If Edit control is active - kill it and return.
|
/* If Edit control is active - kill it and return.
|
||||||
|
@ -3854,6 +3854,13 @@ TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
|
||||||
bTrack = (ht.flags & TVHT_ONITEM)
|
bTrack = (ht.flags & TVHT_ONITEM)
|
||||||
&& !(infoPtr->dwStyle & TVS_DISABLEDRAGDROP);
|
&& !(infoPtr->dwStyle & TVS_DISABLEDRAGDROP);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the style allows editing and the node is already selected
|
||||||
|
* and the click occurred on the item label...
|
||||||
|
*/
|
||||||
|
bDoLabelEdit = (infoPtr->dwStyle & TVS_EDITLABELS) &&
|
||||||
|
(ht.flags & TVHT_ONITEMLABEL) && (infoPtr->selectedItem == ht.hItem);
|
||||||
|
|
||||||
/* Send NM_CLICK right away */
|
/* Send NM_CLICK right away */
|
||||||
if (!bTrack)
|
if (!bTrack)
|
||||||
if (TREEVIEW_SendSimpleNotify(infoPtr, NM_CLICK))
|
if (TREEVIEW_SendSimpleNotify(infoPtr, NM_CLICK))
|
||||||
|
@ -3890,12 +3897,7 @@ TREEVIEW_LButtonDown(TREEVIEW_INFO *infoPtr, LPARAM lParam)
|
||||||
if (bTrack && TREEVIEW_SendSimpleNotify(infoPtr, NM_CLICK))
|
if (bTrack && TREEVIEW_SendSimpleNotify(infoPtr, NM_CLICK))
|
||||||
goto setfocus;
|
goto setfocus;
|
||||||
|
|
||||||
/*
|
if (bDoLabelEdit)
|
||||||
* If the style allows editing and the node is already selected
|
|
||||||
* and the click occurred on the item label...
|
|
||||||
*/
|
|
||||||
if ((infoPtr->dwStyle & TVS_EDITLABELS) &&
|
|
||||||
(ht.flags & TVHT_ONITEMLABEL) && (infoPtr->selectedItem == ht.hItem))
|
|
||||||
{
|
{
|
||||||
if (infoPtr->Timer & TV_EDIT_TIMER_SET)
|
if (infoPtr->Timer & TV_EDIT_TIMER_SET)
|
||||||
KillTimer(hwnd, TV_EDIT_TIMER);
|
KillTimer(hwnd, TV_EDIT_TIMER);
|
||||||
|
|
Loading…
Reference in New Issue