TOOLBAR_DrawString: catch index== -1 (but not yet handled).
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 806d8b3..27dcd25 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -79,13 +79,15 @@
COLORREF clrOld;
LPWSTR lpText = NULL;
- TRACE ("iString: %lx\n", btnPtr->iString);
+ TRACE ("iString: %x\n", btnPtr->iString);
/* get a pointer to the text */
- if (HIWORD(btnPtr->iString) != 0)
- lpText = (LPWSTR)btnPtr->iString;
+ if (btnPtr->iString == -1)
+ FIXME("Undocumented Index -1\n");
+ else if (HIWORD(btnPtr->iString) != 0)
+ lpText = (LPWSTR)btnPtr->iString;
else if ((btnPtr->iString >= 0) && (btnPtr->iString < infoPtr->nNumStrings))
- lpText = infoPtr->strings[btnPtr->iString];
+ lpText = infoPtr->strings[btnPtr->iString];
TRACE ("lpText: \"%s\"\n", debugstr_w(lpText));
@@ -1527,7 +1529,7 @@
btnPtr = &infoPtr->buttons[nIndex];
btnPtr->iBitmap = LOWORD(lParam);
- RedrawWindow(hwnd,&btnPtr->rect,NULL,RDW_ERASE|RDW_INVALIDATE);
+ RedrawWindow(hwnd,&btnPtr->rect,0,RDW_ERASE|RDW_INVALIDATE);
return TRUE;
}
@@ -1570,9 +1572,9 @@
if( bChecked != LOWORD(lParam) )
{
if (nOldIndex != -1)
- RedrawWindow(hwnd,&infoPtr->buttons[nOldIndex].rect,NULL,
+ RedrawWindow(hwnd,&infoPtr->buttons[nOldIndex].rect,(HRGN)NULL,
RDW_ERASE|RDW_INVALIDATE);
- RedrawWindow(hwnd,&btnPtr->rect,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
+ RedrawWindow(hwnd,&btnPtr->rect,0,RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
/* FIXME: Send a WM_NOTIFY?? */
@@ -1710,7 +1712,7 @@
/* redraw the button only if the state of the button changed */
if(bState != (btnPtr->fsState & TBSTATE_ENABLED)) {
- RedrawWindow(hwnd,&btnPtr->rect,NULL,RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
+ RedrawWindow(hwnd,&btnPtr->rect,0,RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
return TRUE;
@@ -2200,7 +2202,7 @@
else
btnPtr->fsState |= TBSTATE_INDETERMINATE;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
return TRUE;
@@ -2467,7 +2469,7 @@
else
btnPtr->fsState |= TBSTATE_PRESSED;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
return TRUE;
@@ -2928,7 +2930,7 @@
btnPtr = &infoPtr->buttons[nIndex];
btnPtr->fsState = LOWORD(lParam);
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
return TRUE;
@@ -2949,7 +2951,7 @@
btnPtr = &infoPtr->buttons[nIndex];
btnPtr->fsStyle = LOWORD(lParam);
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
if (infoPtr->hwndToolTip) {
@@ -3143,7 +3145,7 @@
btnPtr->fsState |= TBSTATE_PRESSED;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
else if (GetWindowLongA (hwnd, GWL_STYLE) & CCS_ADJUSTABLE)
@@ -3195,7 +3197,7 @@
btnPtr->fsState |= TBSTATE_PRESSED;
btnPtr->bHot = FALSE;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
@@ -3254,9 +3256,9 @@
bSendMessage = FALSE;
if (nOldIndex != -1)
- RedrawWindow(hwnd,&infoPtr->buttons[nOldIndex].rect,NULL,
+ RedrawWindow(hwnd,&infoPtr->buttons[nOldIndex].rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
if (bSendMessage) {
@@ -3387,7 +3389,7 @@
/* only enabled buttons show hot effect */
if(infoPtr->buttons[nHit].fsState & TBSTATE_ENABLED)
{
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
}
@@ -3396,12 +3398,12 @@
btnPtr = &infoPtr->buttons[infoPtr->nButtonDown];
if (infoPtr->nOldHit == infoPtr->nButtonDown) {
btnPtr->fsState &= ~TBSTATE_PRESSED;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
else if (nHit == infoPtr->nButtonDown) {
btnPtr->fsState |= TBSTATE_PRESSED;
- RedrawWindow(hwnd,&btnPtr->rect,NULL,
+ RedrawWindow(hwnd,&btnPtr->rect,0,
RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW);
}
}