Module: wine Branch: master Commit: a5118adbbca903d686b8f12316ab642c682f3db9 URL: https://source.winehq.org/git/wine.git/?a=commit;h=a5118adbbca903d686b8f1231...
Author: Piotr Caban piotr@codeweavers.com Date: Fri Jan 5 19:25:46 2018 +0100
user32: Add more CB_SETCURSEL tests on ComboBox.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/user32/combo.c | 2 +- dlls/user32/tests/msg.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/combo.c b/dlls/user32/combo.c index 0c530f7..b69f892 100644 --- a/dlls/user32/combo.c +++ b/dlls/user32/combo.c @@ -726,7 +726,7 @@ static void CBPaintText( static const WCHAR empty_stringW[] = { 0 }; if( CB_HASSTRINGS(lphc) ) SetWindowTextW( lphc->hWndEdit, pText ? pText : empty_stringW ); if( lphc->wState & CBF_FOCUSED ) - SendMessageW(lphc->hWndEdit, EM_SETSEL, 0, -1); + SendMessageW(lphc->hWndEdit, EM_SETSEL, 0, MAXLONG); } else if(!(lphc->wState & CBF_NOREDRAW) && IsWindowVisible( lphc->self )) { diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c index 64c7967..f391ab9 100644 --- a/dlls/user32/tests/msg.c +++ b/dlls/user32/tests/msg.c @@ -6625,6 +6625,14 @@ static const struct message SetCurSelComboSeq2[] = { 0 } };
+static const struct message SetCurSelComboSeq_edit[] = +{ + { CB_SETCURSEL, sent|wparam|lparam, 0, 0 }, + { WM_SETTEXT, sent|wparam, 0 }, + { EM_SETSEL, sent|wparam|lparam, 0, INT_MAX }, + { 0 } +}; + static const struct message WmKeyDownComboSeq[] = { { WM_KEYDOWN, sent|wparam|lparam, VK_DOWN, 0 }, @@ -6926,6 +6934,14 @@ static void test_combobox_messages(void) log_all_parent_messages--; ok_sequence(SetFocusButtonSeq2, "SetFocus on a Button (2)", TRUE);
+ SetFocus(combo); + SendMessageA(combo, WM_SETREDRAW, FALSE, 0); + flush_sequence(); + log_all_parent_messages++; + SendMessageA(combo, CB_SETCURSEL, 0, 0); + log_all_parent_messages--; + ok_sequence(SetCurSelComboSeq_edit, "CB_SETCURSEL on a ComboBox with edit control", FALSE); + DestroyWindow(button); DestroyWindow(combo);