Sergey Guralnik : user32: Init standard scrollbars during WM_NCCREATE.

Alexandre Julliard julliard at winehq.org
Thu Jan 24 12:59:50 CST 2013


Module: wine
Branch: master
Commit: 1cd5e69478afe031566fc265c7c1ecec318e936c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1cd5e69478afe031566fc265c7c1ecec318e936c

Author: Sergey Guralnik <serhio at etersoft.ru>
Date:   Wed Jan 23 08:28:36 2013 +0200

user32: Init standard scrollbars during WM_NCCREATE.

---

 dlls/user32/defwnd.c       |   14 ++++++++++++++
 dlls/user32/tests/scroll.c |   13 +++----------
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c
index af566bf..7a55844 100644
--- a/dlls/user32/defwnd.c
+++ b/dlls/user32/defwnd.c
@@ -837,6 +837,13 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
             if (!IS_INTRESOURCE(cs->lpszName))
                 DEFWND_SetTextA( hwnd, cs->lpszName );
             result = 1;
+
+            if(cs->style & (WS_HSCROLL | WS_VSCROLL))
+            {
+                SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
+                SetScrollInfo( hwnd, SB_HORZ, &si, FALSE );
+                SetScrollInfo( hwnd, SB_VERT, &si, FALSE );
+            }
         }
         break;
 
@@ -984,6 +991,13 @@ LRESULT WINAPI DefWindowProcW(
             if (!IS_INTRESOURCE(cs->lpszName))
                 DEFWND_SetTextW( hwnd, cs->lpszName );
             result = 1;
+
+            if(cs->style & (WS_HSCROLL | WS_VSCROLL))
+            {
+                SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
+                SetScrollInfo( hwnd, SB_HORZ, &si, FALSE );
+                SetScrollInfo( hwnd, SB_VERT, &si, FALSE );
+            }
         }
         break;
 
diff --git a/dlls/user32/tests/scroll.c b/dlls/user32/tests/scroll.c
index 49f42bb..0f0ede2 100644
--- a/dlls/user32/tests/scroll.c
+++ b/dlls/user32/tests/scroll.c
@@ -241,7 +241,6 @@ static void scrollbar_test_default( DWORD style)
         ok( min == 0 && max == 0,
                 "Scroll bar range is %d,%d. Expected 0,0. Style %08x\n", min, max, style);
     else
-todo_wine
         ok(( min == 0 && max == 100) ||
                 broken( min == 0 && max == 0), /* Win 9x/ME */
                 "Scroll bar range is %d,%d. Expected 0,100. Style %08x\n", min, max, style);
@@ -253,7 +252,6 @@ todo_wine
         ok( min == 0 && max == 0,
                 "Scroll bar range is %d,%d. Expected 0,0. Style %08x\n", min, max, style);
     else
-todo_wine
         ok(( min == 0 && max == 100) ||
                 broken( min == 0 && max == 0), /* Win 9x/ME */
                 "Scroll bar range is %d,%d. Expected 0,100. Style %08x\n", min, max, style);
@@ -263,7 +261,6 @@ todo_wine
     if( !( style & ( WS_VSCROLL | WS_HSCROLL)))
         ok( !ret, "GetScrollInfo succeeded unexpectedly. Style is %08x\n", style);
     else
-todo_wine
         ok( ret ||
                 broken( !ret), /* Win 9x/ME */
                 "GetScrollInfo failed unexpectedly. Style is %08x\n", style);
@@ -273,7 +270,6 @@ todo_wine
     if( !( style & ( WS_VSCROLL | WS_HSCROLL)))
         ok( !ret, "GetScrollInfo succeeded unexpectedly. Style is %08x\n", style);
     else
-todo_wine
         ok( ret ||
                 broken( !ret), /* Win 9x/ME */
                 "GetScrollInfo failed unexpectedly. Style is %08x\n", style);
@@ -423,15 +419,12 @@ static LRESULT CALLBACK scroll_init_proc(HWND hwnd, UINT msg,
                 /* WM_NCCREATE was passed to DefWindowProc */
                 if(cs->style & (WS_VSCROLL | WS_HSCROLL))
                 {
-                    todo_wine
-                        ok(h_ret && v_ret, "GetScrollInfo() should return NON-zero "
+                    ok(h_ret && v_ret, "GetScrollInfo() should return NON-zero "
                             "but got h_ret=%d v_ret=%d\n", h_ret, v_ret);
-                    todo_wine
-                        ok(vert.nMin == 0 && vert.nMax == 100,
+                    ok(vert.nMin == 0 && vert.nMax == 100,
                             "unexpected init values(SB_VERT): min=%d max=%d\n",
                             vert.nMin, vert.nMax);
-                    todo_wine
-                        ok(horz.nMin == 0 && horz.nMax == 100,
+                    ok(horz.nMin == 0 && horz.nMax == 100,
                             "unexpected init values(SB_HORZ): min=%d max=%d\n",
                             horz.nMin, horz.nMax);
                 }




More information about the wine-cvs mailing list