Module: wine Branch: master Commit: 0e9ed5c10e3ac6b253712037f0b30046a5656239 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0e9ed5c10e3ac6b253712037f0...
Author: Alex Villacís Lasso a_villacis@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