Module: wine Branch: master Commit: 44cfa3ec1af33f0f2560878c269405468f999a70 URL: https://gitlab.winehq.org/wine/wine/-/commit/44cfa3ec1af33f0f2560878c2694054...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Mon Oct 17 15:36:43 2022 +0800
comctl32/treeview: Don't repaint when handling WM_STYLECHANGED.
Some applications subclass treeview and change style multiple times when painting. Invalidating control when handling WM_STYLECHANGED causes infinite WM_PAINT messages in this case and end up stalling the message queue.
---
dlls/comctl32/tests/misc.c | 2 +- dlls/comctl32/treeview.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/comctl32/tests/misc.c b/dlls/comctl32/tests/misc.c index 5da44e7af8c..73526020843 100644 --- a/dlls/comctl32/tests/misc.c +++ b/dlls/comctl32/tests/misc.c @@ -1109,7 +1109,7 @@ static void test_WM_STYLECHANGED(void) {TOOLBARCLASSNAMEA, wm_stylechanged_seq}, {TOOLTIPS_CLASSA, wm_stylechanged_seq}, {TRACKBAR_CLASSA, wm_stylechanged_trackbar_seq, TRUE}, - {WC_TREEVIEWA, wm_stylechanged_seq, TRUE}, + {WC_TREEVIEWA, wm_stylechanged_seq}, {UPDOWN_CLASSA, wm_stylechanged_seq, TRUE}, {WC_SCROLLBARA, wm_stylechanged_seq}, }; diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c index 23e87bdce04..d3a69bb438e 100644 --- a/dlls/comctl32/treeview.c +++ b/dlls/comctl32/treeview.c @@ -5627,7 +5627,6 @@ TREEVIEW_StyleChanged(TREEVIEW_INFO *infoPtr, WPARAM wParam, LPARAM lParam) TREEVIEW_EndEditLabelNow(infoPtr, TRUE); TREEVIEW_UpdateSubTree(infoPtr, infoPtr->root); TREEVIEW_UpdateScrollBars(infoPtr); - TREEVIEW_Invalidate(infoPtr, NULL);
return 0; }