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