From 5b397df63147ec83a929ba997b395687e6c4c10d Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Sat, 9 Feb 2019 23:23:40 +0300 Subject: [PATCH] comctl32/listview: Take care of scrolling offset when repositioning header. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/comctl32/listview.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 1230c55d5c1..078bea14afe 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -11084,13 +11084,21 @@ static void LISTVIEW_UpdateSize(LISTVIEW_INFO *infoPtr) infoPtr->rcList.bottom = max (infoPtr->rcList.bottom - 2, 0); } - /* if control created invisible header isn't created */ + /* When ListView control is created invisible, header isn't created right away. */ if (infoPtr->hwndHeader) { - HDLAYOUT hl; - WINDOWPOS wp; + POINT origin; + WINDOWPOS wp; + HDLAYOUT hl; + RECT rect; - hl.prc = &infoPtr->rcList; + LISTVIEW_GetOrigin(infoPtr, &origin); + + rect = infoPtr->rcList; + rect.left += origin.x; + rect.top += origin.y; + + hl.prc = ▭ hl.pwpos = ℘ SendMessageW( infoPtr->hwndHeader, HDM_LAYOUT, 0, (LPARAM)&hl ); TRACE(" wp.flags=0x%08x, wp=%d,%d (%dx%d)\n", wp.flags, wp.x, wp.y, wp.cx, wp.cy);