Alex Villacís Lasso : richedit: Empty text should result in a scroll range of 0. Tests for this behavior.
Alexandre Julliard
julliard at winehq.org
Thu Jun 19 06:41:19 CDT 2008
Module: wine
Branch: master
Commit: 0e9ed5c10e3ac6b253712037f0b30046a5656239
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0e9ed5c10e3ac6b253712037f0b30046a5656239
Author: Alex Villacís Lasso <a_villacis at palosanto.com>
Date: Sun May 11 09:54:58 2008 -0500
richedit: Empty text should result in a scroll range of 0. Tests for this behavior.
---
dlls/riched20/paint.c | 11 ++++++++---
dlls/riched20/tests/editor.c | 12 +++++++++++-
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/paint.c b/dlls/riched20/paint.c
index 91b71dc..df2eda8 100644
--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -674,9 +674,14 @@ void ME_Scroll(ME_TextEditor *editor, int value, int type)
si.fMask |= SIF_DISABLENOSCROLL;
si.nMin = 0;
- si.nMax = editor->nTotalLength;
-
- si.nPage = editor->sizeWindow.cy;
+
+ if (ME_GetTextLength(editor) > 0)
+ {
+ si.nMax = editor->nTotalLength;
+ si.nPage = editor->sizeWindow.cy;
+ } else {
+ si.nMax = si.nPage = 0;
+ }
TRACE("min=%d max=%d page=%d\n", si.nMin, si.nMax, si.nPage);
SetScrollInfo(hWnd, SB_VERT, &si, TRUE);
diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c
index 9ed600b..c9aa194 100644
--- a/dlls/riched20/tests/editor.c
+++ b/dlls/riched20/tests/editor.c
@@ -1921,6 +1921,16 @@ static void test_EM_SCROLL(void)
int expr; /* expected return value */
HWND hwndRichEdit = new_richedit(NULL);
int y_before, y_after; /* units of lines of text */
+ SCROLLINFO si;
+
+ /* Empty richedit should have scroll range of 0 */
+ si.cbSize = sizeof(si);
+ si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;
+ GetScrollInfo(hwndRichEdit, SB_VERT, &si);
+ ok(si.nMin == 0, "si.nMin == %d, expected 0\n", si.nMin);
+ ok(si.nMax == 0, "si.nMax == %d, expected 0\n", si.nMax);
+ ok(si.nPos == 0, "si.nPos == %d, expected 0\n", si.nPos);
+ ok(si.nPage == 0, "si.nPage == %d, expected 0\n", si.nPage);
/* test a richedit box containing a single line of text */
SendMessage(hwndRichEdit, WM_SETTEXT, 0, (LPARAM) "a");/* one line of text */
@@ -4181,7 +4191,6 @@ START_TEST( editor )
test_EM_GETMODIFY();
test_EM_EXSETSEL();
test_WM_PASTE();
- test_EM_AUTOURLDETECT();
test_EM_STREAMIN();
test_EM_STREAMOUT();
test_EM_StreamIn_Undo();
@@ -4191,6 +4200,7 @@ START_TEST( editor )
test_EM_REPLACESEL(1);
test_EM_REPLACESEL(0);
test_WM_NOTIFY();
+ test_EM_AUTOURLDETECT();
test_eventMask();
/* Set the environment variable WINETEST_RICHED20 to keep windows
More information about the wine-cvs
mailing list