Lei Zhang : comctl32: Reset nEditLabelItem in LISTVIEW_EndEditLabelT.
Alexandre Julliard
julliard at winehq.org
Wed Oct 29 09:39:34 CDT 2008
Module: wine
Branch: master
Commit: 2881b171df8bcd39449e7226099ee7157a695d00
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2881b171df8bcd39449e7226099ee7157a695d00
Author: Lei Zhang <thestig at google.com>
Date: Wed Oct 29 01:59:14 2008 -0700
comctl32: Reset nEditLabelItem in LISTVIEW_EndEditLabelT.
---
dlls/comctl32/listview.c | 20 +++++++-------------
1 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index ad48403..0c5ec3e 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -4833,18 +4833,20 @@ static BOOL LISTVIEW_EndEditLabelT(LISTVIEW_INFO *infoPtr, LPWSTR pszText, BOOL
{
HWND hwndSelf = infoPtr->hwndSelf;
NMLVDISPINFOW dispInfo;
+ INT editedItem = infoPtr->nEditLabelItem;
BOOL bSame;
TRACE("(pszText=%s, isW=%d)\n", debugtext_t(pszText, isW), isW);
+ infoPtr->nEditLabelItem = -1;
+
ZeroMemory(&dispInfo, sizeof(dispInfo));
dispInfo.item.mask = LVIF_PARAM | LVIF_STATE | LVIF_TEXT;
- dispInfo.item.iItem = infoPtr->nEditLabelItem;
+ dispInfo.item.iItem = editedItem;
dispInfo.item.iSubItem = 0;
dispInfo.item.stateMask = ~0;
if (!LISTVIEW_GetItemW(infoPtr, &dispInfo.item)) return FALSE;
- /* Don't bother continuing if text has not changed */
if (isW)
bSame = (lstrcmpW(dispInfo.item.pszText, pszText) == 0);
else
@@ -4868,18 +4870,18 @@ static BOOL LISTVIEW_EndEditLabelT(LISTVIEW_INFO *infoPtr, LPWSTR pszText, BOOL
if (!(infoPtr->dwStyle & LVS_OWNERDATA))
{
- HDPA hdpaSubItems = DPA_GetPtr(infoPtr->hdpaItems, infoPtr->nEditLabelItem);
+ HDPA hdpaSubItems = DPA_GetPtr(infoPtr->hdpaItems, editedItem);
ITEM_INFO* lpItem = DPA_GetPtr(hdpaSubItems, 0);
if (lpItem && lpItem->hdr.pszText == LPSTR_TEXTCALLBACKW)
{
- LISTVIEW_InvalidateItem(infoPtr, infoPtr->nEditLabelItem);
+ LISTVIEW_InvalidateItem(infoPtr, editedItem);
return TRUE;
}
}
ZeroMemory(&dispInfo, sizeof(dispInfo));
dispInfo.item.mask = LVIF_TEXT;
- dispInfo.item.iItem = infoPtr->nEditLabelItem;
+ dispInfo.item.iItem = editedItem;
dispInfo.item.iSubItem = 0;
dispInfo.item.pszText = pszText;
dispInfo.item.cchTextMax = textlenT(pszText, isW);
@@ -8614,7 +8616,6 @@ static LRESULT LISTVIEW_LButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
{
LVHITTESTINFO lvHitTestInfo;
static BOOL bGroupSelect = TRUE;
- BOOL bReceivedFocus = FALSE;
POINT pt = { x, y };
INT nItem;
@@ -8623,9 +8624,6 @@ static LRESULT LISTVIEW_LButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
/* send NM_RELEASEDCAPTURE notification */
if (!notify(infoPtr, NM_RELEASEDCAPTURE)) return 0;
- if (!infoPtr->bFocus)
- bReceivedFocus = TRUE;
-
/* set left button down flag and record the click position */
infoPtr->bLButtonDown = TRUE;
infoPtr->ptClickPos = pt;
@@ -8636,7 +8634,6 @@ static LRESULT LISTVIEW_LButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
nItem = LISTVIEW_HitTest(infoPtr, &lvHitTestInfo, TRUE, TRUE);
TRACE("at %s, nItem=%d\n", wine_dbgstr_point(&pt), nItem);
- infoPtr->nEditLabelItem = -1;
if ((nItem >= 0) && (nItem < infoPtr->nItemCount))
{
if ((infoPtr->dwLvExStyle & LVS_EX_CHECKBOXES) && (lvHitTestInfo.flags & LVHT_ONITEMSTATEICON))
@@ -8705,9 +8702,6 @@ static LRESULT LISTVIEW_LButtonDown(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, IN
ReleaseCapture();
}
- if (bReceivedFocus)
- infoPtr->nEditLabelItem = -1;
-
return 0;
}
More information about the wine-cvs
mailing list