Alex Henrie : comctl32/listview: Don' t invalidate when new style is same as old.
Alexandre Julliard
julliard at winehq.org
Fri May 18 16:53:13 CDT 2018
Module: wine
Branch: master
Commit: 8e9ea7a8a163147012908bad696a539454654d8f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8e9ea7a8a163147012908bad696a539454654d8f
Author: Alex Henrie <alexhenrie24 at gmail.com>
Date: Sun May 13 21:56:12 2018 -0600
comctl32/listview: Don't invalidate when new style is same as old.
Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/comctl32/listview.c | 8 +++++---
dlls/comctl32/tests/listview.c | 8 ++++++++
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index d63c23a..200bf93 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -11108,14 +11108,13 @@ static void LISTVIEW_UpdateSize(LISTVIEW_INFO *infoPtr)
static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
const STYLESTRUCT *lpss)
{
- UINT uNewView = lpss->styleNew & LVS_TYPEMASK;
- UINT uOldView = lpss->styleOld & LVS_TYPEMASK;
+ UINT uNewView, uOldView;
UINT style;
TRACE("(styletype=%lx, styleOld=0x%08x, styleNew=0x%08x)\n",
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;
@@ -11127,6 +11126,9 @@ static INT LISTVIEW_StyleChanged(LISTVIEW_INFO *infoPtr, WPARAM wStyleType,
((lpss->styleNew & WS_VSCROLL) == 0))
ShowScrollBar(infoPtr->hwndSelf, SB_VERT, FALSE);
+ uNewView = lpss->styleNew & LVS_TYPEMASK;
+ uOldView = lpss->styleOld & LVS_TYPEMASK;
+
if (uNewView != uOldView)
{
HIMAGELIST himl;
diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c
index c9a165c..c2d33c4 100644
--- a/dlls/comctl32/tests/listview.c
+++ b/dlls/comctl32/tests/listview.c
@@ -1781,6 +1781,7 @@ static void test_redraw(void)
HDC hdc;
BOOL res;
DWORD r;
+ RECT rect;
hwnd = create_listview_control(LVS_REPORT);
subclass_header(hwnd);
@@ -1838,6 +1839,13 @@ static void test_redraw(void)
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);
}
More information about the wine-cvs
mailing list