Lei Zhang : comctl32: Set tab focus correctly.

Alexandre Julliard julliard at winehq.org
Tue Oct 30 08:32:48 CDT 2007


Module: wine
Branch: master
Commit: f2519fdcda334167b44899e188f3d9400a83ea13
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f2519fdcda334167b44899e188f3d9400a83ea13

Author: Lei Zhang <thestig at google.com>
Date:   Mon Oct 29 18:47:09 2007 -0700

comctl32: Set tab focus correctly.

---

 dlls/comctl32/tab.c       |    9 ++++-----
 dlls/comctl32/tests/tab.c |   20 +++++---------------
 2 files changed, 9 insertions(+), 20 deletions(-)

diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 2db8cfe..5f9e295 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -2325,11 +2325,6 @@ static void TAB_Refresh (TAB_INFO *infoPtr, HDC hdc)
 
     /* Then, draw the selected item */
     TAB_DrawItem (infoPtr, hdc, infoPtr->iSelected);
-
-    /* If we haven't set the current focus yet, set it now.
-     * Only happens when we first paint the tab controls */
-    if (infoPtr->uFocus == -1)
-      TAB_SetCurFocus(infoPtr, infoPtr->iSelected);
   }
 
   SelectObject (hdc, hOldFont);
@@ -2637,6 +2632,10 @@ TAB_InsertItemT (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
   TRACE("[%p]: added item %d %s\n",
         infoPtr->hwnd, iItem, debugstr_w(item->pszText));
 
+  /* If we haven't set the current focus yet, set it now. */
+  if (infoPtr->uFocus == -1)
+    TAB_SetCurFocus(infoPtr, iItem);
+
   return iItem;
 }
 
diff --git a/dlls/comctl32/tests/tab.c b/dlls/comctl32/tests/tab.c
index 32de6bc..9489376 100644
--- a/dlls/comctl32/tests/tab.c
+++ b/dlls/comctl32/tests/tab.c
@@ -876,9 +876,7 @@ static void test_insert_focus(HWND parent_wnd)
     expect(1, nTabsRetrieved);
 
     r = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
-    todo_wine {
-        expect(0, r);
-    }
+    expect(0, r);
 
     tcNewTab.iImage = 2;
     r = SendMessage(hTab, TCM_INSERTITEM, 2, (LPARAM) &tcNewTab);
@@ -888,9 +886,7 @@ static void test_insert_focus(HWND parent_wnd)
     expect(2, nTabsRetrieved);
 
     r = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
-    todo_wine {
-        expect(0, r);
-    }
+    expect(0, r);
 
     r = SendMessage(hTab, TCM_SETCURFOCUS, -1, 0);
     expect(0, r);
@@ -903,9 +899,7 @@ static void test_insert_focus(HWND parent_wnd)
     expect(2, r);
 
     r = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
-    todo_wine {
-        expect(2, r);
-    }
+    expect(2, r);
 
     ok_sequence(sequences, TAB_SEQ_INDEX, insert_focus_seq, "insert_focus test sequence", TRUE);
     ok_sequence(sequences, PARENT_SEQ_INDEX, empty_sequence, "insert_focus parent test sequence", FALSE);
@@ -930,9 +924,7 @@ static void test_delete_focus(HWND parent_wnd)
     expect(2, nTabsRetrieved);
 
     r = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
-    todo_wine {
-        expect(0, r);
-    }
+    expect(0, r);
 
     r = SendMessage(hTab, TCM_DELETEITEM, 1, 0);
     expect(1, r);
@@ -941,9 +933,7 @@ static void test_delete_focus(HWND parent_wnd)
     expect(1, nTabsRetrieved);
 
     r = SendMessage(hTab, TCM_GETCURFOCUS, 0, 0);
-    todo_wine {
-        expect(0, r);
-    }
+    expect(0, r);
 
     r = SendMessage(hTab, TCM_SETCURFOCUS, -1, 0);
     expect(0, r);




More information about the wine-cvs mailing list