Commit ad7f0b95 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

comctl32/listview: Invalidate list after WM_MEASUREITEM notification.

parent 8e18e9e6
...@@ -1027,7 +1027,8 @@ static inline DWORD notify_postpaint (const LISTVIEW_INFO *infoPtr, NMLVCUSTOMDR ...@@ -1027,7 +1027,8 @@ static inline DWORD notify_postpaint (const LISTVIEW_INFO *infoPtr, NMLVCUSTOMDR
return notify_customdraw(infoPtr, CDDS_POSTPAINT, lpnmlvcd); return notify_customdraw(infoPtr, CDDS_POSTPAINT, lpnmlvcd);
} }
static void notify_measureitem(LISTVIEW_INFO *infoPtr) /* returns TRUE when repaint needed, FALSE otherwise */
static BOOL notify_measureitem(LISTVIEW_INFO *infoPtr)
{ {
MEASUREITEMSTRUCT mis; MEASUREITEMSTRUCT mis;
mis.CtlType = ODT_LISTVIEW; mis.CtlType = ODT_LISTVIEW;
...@@ -1038,7 +1039,11 @@ static void notify_measureitem(LISTVIEW_INFO *infoPtr) ...@@ -1038,7 +1039,11 @@ static void notify_measureitem(LISTVIEW_INFO *infoPtr)
mis.itemHeight= infoPtr->nItemHeight; mis.itemHeight= infoPtr->nItemHeight;
SendMessageW(infoPtr->hwndNotify, WM_MEASUREITEM, mis.CtlID, (LPARAM)&mis); SendMessageW(infoPtr->hwndNotify, WM_MEASUREITEM, mis.CtlID, (LPARAM)&mis);
if (infoPtr->nItemHeight != max(mis.itemHeight, 1)) if (infoPtr->nItemHeight != max(mis.itemHeight, 1))
{
infoPtr->nMeasureItemHeight = infoPtr->nItemHeight = max(mis.itemHeight, 1); infoPtr->nMeasureItemHeight = infoPtr->nItemHeight = max(mis.itemHeight, 1);
return TRUE;
}
return FALSE;
} }
/******** Item iterator functions **********************************/ /******** Item iterator functions **********************************/
...@@ -10792,7 +10797,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ...@@ -10792,7 +10797,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
if ((infoPtr->dwStyle & LVS_OWNERDRAWFIXED) && (infoPtr->uView == LV_VIEW_DETAILS)) if ((infoPtr->dwStyle & LVS_OWNERDRAWFIXED) && (infoPtr->uView == LV_VIEW_DETAILS))
{ {
notify_measureitem(infoPtr); if (notify_measureitem(infoPtr)) LISTVIEW_InvalidateList(infoPtr);
} }
LISTVIEW_UpdateSize(infoPtr); LISTVIEW_UpdateSize(infoPtr);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment