user32: Fix return value of EDIT_EM_Scroll.

This commit is contained in:
David Hedberg 2010-03-03 13:19:46 +01:00 committed by Alexandre Julliard
parent cd172dff7c
commit 598052b4ad
2 changed files with 40 additions and 2 deletions

View File

@ -1635,10 +1635,13 @@ static LRESULT EDIT_EM_Scroll(EDITSTATE *es, INT action)
dy = es->line_count - vlc - es->y_offset; dy = es->line_count - vlc - es->y_offset;
/* Notification is done in EDIT_EM_LineScroll */ /* Notification is done in EDIT_EM_LineScroll */
if(dy) if(dy) {
EDIT_EM_LineScroll(es, 0, dy); EDIT_EM_LineScroll(es, 0, dy);
return MAKELONG(dy, TRUE);
}
} }
return MAKELONG(dy, TRUE); return (LRESULT)FALSE;
} }

View File

@ -1316,6 +1316,40 @@ static void test_edit_control_limittext(void)
DestroyWindow(hwEdit); DestroyWindow(hwEdit);
} }
/* Test EM_SCROLL */
static void test_edit_control_scroll(void)
{
static const char *single_line_str = "a";
HWND hwEdit;
LONG ret;
/* Check the return value when EM_SCROLL doesn't scroll
* anything. Should not return true unless any lines were actually
* scrolled. */
hwEdit = CreateWindow(
"EDIT",
single_line_str,
WS_VSCROLL | ES_MULTILINE,
1, 1, 100, 100,
NULL, NULL, hinst, NULL);
assert(hwEdit);
ret = SendMessage(hwEdit, EM_SCROLL, SB_PAGEDOWN, 0);
ok(!ret, "Returned %x, expected 0.\n", ret);
ret = SendMessage(hwEdit, EM_SCROLL, SB_PAGEUP, 0);
ok(!ret, "Returned %x, expected 0.\n", ret);
ret = SendMessage(hwEdit, EM_SCROLL, SB_LINEUP, 0);
ok(!ret, "Returned %x, expected 0.\n", ret);
ret = SendMessage(hwEdit, EM_SCROLL, SB_LINEDOWN, 0);
ok(!ret, "Returned %x, expected 0.\n", ret);
DestroyWindow (hwEdit);
}
static void test_margins(void) static void test_margins(void)
{ {
HWND hwEdit; HWND hwEdit;
@ -2319,6 +2353,7 @@ START_TEST(edit)
test_edit_control_5(); test_edit_control_5();
test_edit_control_6(); test_edit_control_6();
test_edit_control_limittext(); test_edit_control_limittext();
test_edit_control_scroll();
test_margins(); test_margins();
test_margins_font_change(); test_margins_font_change();
test_text_position(); test_text_position();