Commit 8e9ea7a8 authored by Alex Henrie's avatar Alex Henrie Committed by Alexandre Julliard

comctl32/listview: Don't invalidate when new style is same as old.

parent a602405e
...@@ -11108,14 +11108,13 @@ static void LISTVIEW_UpdateSize(LISTVIEW_INFO *infoPtr) ...@@ -11108,14 +11108,13 @@ static void LISTVIEW_UpdateSize(LISTVIEW_INFO *infoPtr)
static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType, static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
const STYLESTRUCT *lpss) const STYLESTRUCT *lpss)
{ {
UINT uNewView = lpss->styleNew & LVS_TYPEMASK; UINT uNewView, uOldView;
UINT uOldView = lpss->styleOld & LVS_TYPEMASK;
UINT style; UINT style;
TRACE("(styletype=%lx, styleOld=0x%08x, styleNew=0x%08x)\n", TRACE("(styletype=%lx, styleOld=0x%08x, styleNew=0x%08x)\n",
wStyleType, lpss->styleOld, lpss->styleNew); wStyleType, lpss->styleOld, lpss->styleNew);
if (wStyleType != GWL_STYLE) return 0; if (wStyleType != GWL_STYLE || lpss->styleNew == infoPtr->dwStyle) return 0;
infoPtr->dwStyle = lpss->styleNew; infoPtr->dwStyle = lpss->styleNew;
...@@ -11127,6 +11126,9 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType, ...@@ -11127,6 +11126,9 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
((lpss->styleNew & WS_VSCROLL) == 0)) ((lpss->styleNew & WS_VSCROLL) == 0))
ShowScrollBar(infoPtr->hwndSelf, SB_VERT, FALSE); ShowScrollBar(infoPtr->hwndSelf, SB_VERT, FALSE);
uNewView = lpss->styleNew & LVS_TYPEMASK;
uOldView = lpss->styleOld & LVS_TYPEMASK;
if (uNewView != uOldView) if (uNewView != uOldView)
{ {
HIMAGELIST himl; HIMAGELIST himl;
......
...@@ -1781,6 +1781,7 @@ static void test_redraw(void) ...@@ -1781,6 +1781,7 @@ static void test_redraw(void)
HDC hdc; HDC hdc;
BOOL res; BOOL res;
DWORD r; DWORD r;
RECT rect;
hwnd = create_listview_control(LVS_REPORT); hwnd = create_listview_control(LVS_REPORT);
subclass_header(hwnd); subclass_header(hwnd);
...@@ -1838,6 +1839,13 @@ static void test_redraw(void) ...@@ -1838,6 +1839,13 @@ static void test_redraw(void)
ReleaseDC(hwndparent, hdc); ReleaseDC(hwndparent, hdc);
/* test setting the window style to what it already was */
UpdateWindow(hwnd);
SetWindowLongA(hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE));
GetUpdateRect(hwnd, &rect, FALSE);
ok(rect.left == 0 && rect.top == 0 && rect.right == 0 && rect.bottom == 0,
"Expected empty update rect, got %s\n", wine_dbgstr_rect(&rect));
DestroyWindow(hwnd); DestroyWindow(hwnd);
} }
......
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