mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 10:13:56 +00:00
comctl32: Fix listview redraw when deleting items.
This commit is contained in:
parent
74f2f09295
commit
03f18eb425
1 changed files with 6 additions and 4 deletions
|
@ -4642,8 +4642,9 @@ static void LISTVIEW_ScrollOnInsert(LISTVIEW_INFO *infoPtr, INT nItem, INT dir)
|
|||
*/
|
||||
static BOOL LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem)
|
||||
{
|
||||
UINT uView = infoPtr->dwStyle & LVS_TYPEMASK;
|
||||
LVITEMW item;
|
||||
const UINT uView = infoPtr->dwStyle & LVS_TYPEMASK;
|
||||
const BOOL is_icon = (uView == LVS_SMALLICON || uView == LVS_ICON);
|
||||
|
||||
TRACE("(nItem=%d)\n", nItem);
|
||||
|
||||
|
@ -4658,7 +4659,7 @@ static BOOL LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem)
|
|||
if (!notify_deleteitem(infoPtr, nItem)) return FALSE;
|
||||
|
||||
/* we need to do this here, because we'll be deleting stuff */
|
||||
if (uView == LVS_SMALLICON || uView == LVS_ICON)
|
||||
if (is_icon)
|
||||
LISTVIEW_InvalidateItem(infoPtr, nItem);
|
||||
|
||||
if (!(infoPtr->dwStyle & LVS_OWNERDATA))
|
||||
|
@ -4677,7 +4678,7 @@ static BOOL LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem)
|
|||
DPA_Destroy(hdpaSubItems);
|
||||
}
|
||||
|
||||
if (uView == LVS_SMALLICON || uView == LVS_ICON)
|
||||
if (is_icon)
|
||||
{
|
||||
DPA_DeletePtr(infoPtr->hdpaPosX, nItem);
|
||||
DPA_DeletePtr(infoPtr->hdpaPosY, nItem);
|
||||
|
@ -4687,7 +4688,8 @@ static BOOL LISTVIEW_DeleteItem(LISTVIEW_INFO *infoPtr, INT nItem)
|
|||
LISTVIEW_ShiftIndices(infoPtr, nItem, -1);
|
||||
|
||||
/* now is the invalidation fun */
|
||||
LISTVIEW_ScrollOnInsert(infoPtr, nItem, -1);
|
||||
if (!is_icon)
|
||||
LISTVIEW_ScrollOnInsert(infoPtr, nItem, -1);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue