comctl32: rebar: WM_SETFONT should send a RBN_HEIGHTCHANGE if necessary.

This commit is contained in:
Mikołaj Zalewski 2007-02-28 13:41:14 +01:00 committed by Alexandre Julliard
parent b33057986a
commit 95d0e58659
1 changed files with 11 additions and 17 deletions

View File

@ -1299,7 +1299,7 @@ static void REBAR_LayoutRow(REBAR_INFO *infoPtr, int iBeginBand, int iEndBand, i
} }
static VOID static VOID
REBAR_Layout(REBAR_INFO *infoPtr, LPRECT lpRect, BOOL notify) REBAR_Layout(REBAR_INFO *infoPtr, LPRECT lpRect)
{ {
REBAR_BAND *lpBand; REBAR_BAND *lpBand;
RECT rcAdj; RECT rcAdj;
@ -1378,7 +1378,7 @@ REBAR_Layout(REBAR_INFO *infoPtr, LPRECT lpRect, BOOL notify)
infoPtr->calcSize.cx = adjcx; infoPtr->calcSize.cx = adjcx;
infoPtr->calcSize.cy = yPos; infoPtr->calcSize.cy = yPos;
TRACE("calcsize notify=%d, size=(%d, %d), origheight=(%d,%d)\n", notify, TRACE("calcsize size=(%d, %d), origheight=(%d,%d)\n",
infoPtr->calcSize.cx, infoPtr->calcSize.cy, infoPtr->calcSize.cx, infoPtr->calcSize.cy,
oldSize.cx, oldSize.cy); oldSize.cx, oldSize.cy);
@ -1388,7 +1388,7 @@ REBAR_Layout(REBAR_INFO *infoPtr, LPRECT lpRect, BOOL notify)
/* note: after a RBN_HEIGHTCHANGE native sends once again all the RBN_CHILDSIZE /* note: after a RBN_HEIGHTCHANGE native sends once again all the RBN_CHILDSIZE
* and does another ForceResize */ * and does another ForceResize */
if (notify && (oldSize.cy != infoPtr->calcSize.cy)) if (oldSize.cy != infoPtr->calcSize.cy)
{ {
NMHDR heightchange; NMHDR heightchange;
REBAR_Notify(&heightchange, infoPtr, RBN_HEIGHTCHANGE); REBAR_Notify(&heightchange, infoPtr, RBN_HEIGHTCHANGE);
@ -1942,7 +1942,7 @@ REBAR_DeleteBand (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
TRACE("setting NEEDS_LAYOUT\n"); TRACE("setting NEEDS_LAYOUT\n");
infoPtr->fStatus |= BAND_NEEDS_LAYOUT; infoPtr->fStatus |= BAND_NEEDS_LAYOUT;
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
return TRUE; return TRUE;
} }
@ -2316,7 +2316,7 @@ REBAR_InsertBandT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnico
REBAR_DumpBand (infoPtr); REBAR_DumpBand (infoPtr);
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
InvalidateRect(infoPtr->hwndSelf, 0, TRUE); InvalidateRect(infoPtr->hwndSelf, 0, TRUE);
return TRUE; return TRUE;
@ -2538,7 +2538,7 @@ REBAR_SetBandInfoT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnic
REBAR_DumpBand (infoPtr); REBAR_DumpBand (infoPtr);
if (bChanged && (lprbbi->fMask & (RBBIM_CHILDSIZE | RBBIM_SIZE | RBBIM_STYLE))) { if (bChanged && (lprbbi->fMask & (RBBIM_CHILDSIZE | RBBIM_SIZE | RBBIM_STYLE))) {
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
InvalidateRect(infoPtr->hwndSelf, 0, 1); InvalidateRect(infoPtr->hwndSelf, 0, 1);
} }
@ -2688,7 +2688,7 @@ REBAR_ShowBand (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
} }
infoPtr->fStatus |= BAND_NEEDS_LAYOUT; infoPtr->fStatus |= BAND_NEEDS_LAYOUT;
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
InvalidateRect(infoPtr->hwndSelf, 0, 1); InvalidateRect(infoPtr->hwndSelf, 0, 1);
return TRUE; return TRUE;
@ -2718,7 +2718,7 @@ REBAR_SizeToRect (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
/* force full _Layout processing */ /* force full _Layout processing */
TRACE("setting NEEDS_LAYOUT\n"); TRACE("setting NEEDS_LAYOUT\n");
infoPtr->fStatus |= BAND_NEEDS_LAYOUT; infoPtr->fStatus |= BAND_NEEDS_LAYOUT;
REBAR_Layout(infoPtr, lpRect, TRUE); REBAR_Layout(infoPtr, lpRect);
InvalidateRect (infoPtr->hwndSelf, NULL, TRUE); InvalidateRect (infoPtr->hwndSelf, NULL, TRUE);
return TRUE; return TRUE;
} }
@ -3286,7 +3286,6 @@ REBAR_SetCursor (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static LRESULT static LRESULT
REBAR_SetFont (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam) REBAR_SetFont (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
{ {
RECT rcClient;
REBAR_BAND *lpBand; REBAR_BAND *lpBand;
UINT i; UINT i;
@ -3298,12 +3297,7 @@ REBAR_SetFont (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
REBAR_ValidateBand (infoPtr, lpBand); REBAR_ValidateBand (infoPtr, lpBand);
} }
REBAR_Layout(infoPtr, NULL);
if (LOWORD(lParam)) {
GetClientRect (infoPtr->hwndSelf, &rcClient);
REBAR_Layout(infoPtr, &rcClient, FALSE);
}
return 0; return 0;
} }
@ -3365,7 +3359,7 @@ REBAR_Size (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
} }
infoPtr->fStatus |= BAND_NEEDS_LAYOUT; infoPtr->fStatus |= BAND_NEEDS_LAYOUT;
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
return 0; return 0;
} }
@ -3385,7 +3379,7 @@ REBAR_StyleChanged (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
if ((ss->styleNew ^ ss->styleOld) & CCS_VERT) if ((ss->styleNew ^ ss->styleOld) & CCS_VERT)
{ {
infoPtr->fStatus |= BAND_NEEDS_LAYOUT; infoPtr->fStatus |= BAND_NEEDS_LAYOUT;
REBAR_Layout(infoPtr, NULL, TRUE); REBAR_Layout(infoPtr, NULL);
} }
return FALSE; return FALSE;