hhctrl.ocx: Use the correct values for current_tab when some tabs are disabled.

This commit is contained in:
Erich Hoover 2011-09-27 20:00:10 -06:00 committed by Alexandre Julliard
parent 988307e87b
commit 3228b4d1c3
2 changed files with 19 additions and 1 deletions

View file

@ -448,6 +448,7 @@ static LRESULT Child_OnSize(HWND hwnd)
static LRESULT OnTabChange(HWND hwnd)
{
HHInfo *info = (HHInfo*)GetWindowLongPtrW(hwnd, GWLP_USERDATA);
int tab_id, tab_index, i;
TRACE("%p\n", hwnd);
@ -457,7 +458,23 @@ static LRESULT OnTabChange(HWND hwnd)
if(info->tabs[info->current_tab].hwnd)
ShowWindow(info->tabs[info->current_tab].hwnd, SW_HIDE);
info->current_tab = SendMessageW(info->hwndTabCtrl, TCM_GETCURSEL, 0, 0);
tab_id = (int) SendMessageW(info->hwndTabCtrl, TCM_GETCURSEL, 0, 0);
/* convert the ID of the tab to an index in our tab list */
tab_index = -1;
for (i=0; i<TAB_NUMTABS; i++)
{
if (info->tabs[i].id == tab_id)
{
tab_index = i;
break;
}
}
if (tab_index == -1)
{
FIXME("Tab ID %d does not correspond to a valid index in the tab list.\n", tab_id);
return 0;
}
info->current_tab = tab_index;
if(info->tabs[info->current_tab].hwnd)
ShowWindow(info->tabs[info->current_tab].hwnd, SW_SHOW);

View file

@ -111,6 +111,7 @@ typedef struct CHMInfo
#define TAB_INDEX 1
#define TAB_SEARCH 2
#define TAB_FAVORITES 3
#define TAB_NUMTABS TAB_FAVORITES
typedef struct {
HWND hwnd;