[PATCH] user32: Improve window state handling in SetScrollInfo().
Nikolay Sivov
nsivov at codeweavers.com
Tue Jan 28 03:26:42 CST 2020
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42038
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/user32/scroll.c | 6 ++++++
dlls/user32/tests/scroll.c | 3 ---
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/scroll.c b/dlls/user32/scroll.c
index d611cf0060..1d6c048429 100644
--- a/dlls/user32/scroll.c
+++ b/dlls/user32/scroll.c
@@ -1750,6 +1750,12 @@ static INT SCROLL_SetScrollInfo( HWND hwnd, INT nBar, LPCSCROLLINFO info, BOOL b
action |= SA_SSI_SHOW;
}
+ if (nBar == SB_CTL && bRedraw && IsWindowVisible(hwnd) &&
+ (new_flags == ESB_ENABLE_BOTH || new_flags == ESB_DISABLE_BOTH))
+ {
+ EnableWindow(hwnd, new_flags == ESB_ENABLE_BOTH);
+ }
+
if (infoPtr->flags != new_flags) /* check arrow flags */
{
infoPtr->flags = new_flags;
diff --git a/dlls/user32/tests/scroll.c b/dlls/user32/tests/scroll.c
index 9c892ed484..7181a02874 100644
--- a/dlls/user32/tests/scroll.c
+++ b/dlls/user32/tests/scroll.c
@@ -634,7 +634,6 @@ static void test_SetScrollInfo(void)
si.nPage = 50;
SetScrollInfo(hScroll, SB_CTL, &si, TRUE);
ret = IsWindowEnabled(hScroll);
-todo_wine
ok(ret, "Unexpected enabled state.\n");
si.fMask = SIF_POS|SIF_RANGE|SIF_PAGE|SIF_DISABLENOSCROLL;
@@ -657,7 +656,6 @@ todo_wine
si.nPage = 100;
SetScrollInfo(hScroll, SB_CTL, &si, TRUE);
ret = IsWindowEnabled(hScroll);
-todo_wine
ok(!ret, "Unexpected enabled state.\n");
EnableScrollBar(hScroll, SB_CTL, ESB_DISABLE_BOTH);
@@ -671,7 +669,6 @@ todo_wine
si.nPage = 41;
SetScrollInfo(hScroll, SB_CTL, &si, TRUE);
ret = IsWindowEnabled(hScroll);
-todo_wine
ok(ret, "Unexpected enabled state.\n");
DestroyWindow(hScroll);
--
2.24.1
More information about the wine-devel
mailing list