Lei Zhang : comctl32: Don' t notify if listview edit box contents have not changed.
Alexandre Julliard
julliard at winehq.org
Wed Oct 29 09:39:32 CDT 2008
Module: wine
Branch: master
Commit: 10d3ea30b766aa63ed9590a1a90ac913b9875f70
URL: http://source.winehq.org/git/wine.git/?a=commit;h=10d3ea30b766aa63ed9590a1a90ac913b9875f70
Author: Lei Zhang <thestig at google.com>
Date: Wed Oct 29 01:58:46 2008 -0700
comctl32: Don't notify if listview edit box contents have not changed.
---
dlls/comctl32/listview.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index d218a5c..ad48403 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -4833,15 +4833,28 @@ static BOOL LISTVIEW_EndEditLabelT(LISTVIEW_INFO *infoPtr, LPWSTR pszText, BOOL
{
HWND hwndSelf = infoPtr->hwndSelf;
NMLVDISPINFOW dispInfo;
+ BOOL bSame;
TRACE("(pszText=%s, isW=%d)\n", debugtext_t(pszText, isW), isW);
ZeroMemory(&dispInfo, sizeof(dispInfo));
- dispInfo.item.mask = LVIF_PARAM | LVIF_STATE;
+ dispInfo.item.mask = LVIF_PARAM | LVIF_STATE | LVIF_TEXT;
dispInfo.item.iItem = infoPtr->nEditLabelItem;
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
+ {
+ LPWSTR tmp = textdupTtoW(pszText, FALSE);
+ bSame = (lstrcmpW(dispInfo.item.pszText, tmp) == 0);
+ textfreeT(tmp, FALSE);
+ }
+ if (bSame) return TRUE;
+
/* add the text from the edit in */
dispInfo.item.mask |= LVIF_TEXT;
dispInfo.item.pszText = pszText;
More information about the wine-cvs
mailing list