From 3822aa4b638ac1820d80fedee05c37f777137854 Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Tue, 4 Sep 2007 15:38:19 +0900 Subject: [PATCH] comctl32: TCM_SETCURSEL also updates the focus item. --- dlls/comctl32/tab.c | 1 + dlls/comctl32/tests/tab.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c index 830bc7e3b23..d3cf0fd0c26 100644 --- a/dlls/comctl32/tab.c +++ b/dlls/comctl32/tab.c @@ -255,6 +255,7 @@ static inline LRESULT TAB_SetCurSel (TAB_INFO *infoPtr, INT iItem) else { if (infoPtr->iSelected != iItem) { infoPtr->iSelected=iItem; + infoPtr->uFocus=iItem; TAB_EnsureSelectionVisible(infoPtr); TAB_InvalidateTabArea(infoPtr); } diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c index 3069d13bb4b..1787a8b747d 100644 --- a/dlls/comctl32/tests/tab.c +++ b/dlls/comctl32/tests/tab.c @@ -182,6 +182,7 @@ static const struct message getset_cur_focus_seq[] = { static const struct message getset_cur_sel_seq[] = { { TCM_SETCURSEL, sent|lparam, 0 }, { TCM_GETCURSEL, sent|wparam|lparam, 0, 0 }, + { TCM_GETCURFOCUS, sent|wparam|lparam, 0, 0 }, { TCM_SETCURSEL, sent|lparam, 0 }, { TCM_GETCURSEL, sent|wparam|lparam, 0, 0 }, { TCM_SETCURSEL, sent|lparam, 0 }, @@ -673,9 +674,7 @@ static void test_getters_setters(INT nTabs) SendMessage(hTab, TCM_SETCURFOCUS, nTabs+1, 0); focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0); - todo_wine{ expect(1, focusIndex); - } ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_focus_seq, "Getset curFoc test sequence", FALSE); } @@ -683,6 +682,7 @@ static void test_getters_setters(INT nTabs) /* Testing CurSel */ { INT selectionIndex; + INT focusIndex; flush_sequences(sequences, NUM_MSG_SEQUENCES); @@ -692,6 +692,10 @@ static void test_getters_setters(INT nTabs) selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0); expect(nTabs-1, selectionIndex); + /* Focus should switch with selection */ + focusIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0); + expect(nTabs-1, focusIndex); + /* Testing CurSel with negative value */ SendMessage(hTab, TCM_SETCURSEL, -10, 0); selectionIndex = SendMessage(hTab, TCM_GETCURSEL, 0, 0); @@ -704,9 +708,7 @@ static void test_getters_setters(INT nTabs) selectionIndex = SendMessage(hTab, TCM_SETCURSEL, nTabs+1, 0); expect(-1, selectionIndex); selectionIndex = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0); - todo_wine{ expect(1, selectionIndex); - } ok_sequence(sequences, TAB_SEQ_INDEX, getset_cur_sel_seq, "Getset curSel test sequence", FALSE); ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "Getset curSel test parent sequence", FALSE); -- 2.11.4.GIT