comctl32: rebar: Prevent unnecessary triggering of RBBIM_CHILDSIZE changes.

This commit is contained in:
Aric Stewart 2008-07-10 11:30:15 +09:00 committed by Alexandre Julliard
parent 1c2ad72b47
commit 11f09f3aa0
1 changed files with 10 additions and 2 deletions

View File

@ -1647,7 +1647,7 @@ static UINT
REBAR_CommonSetupBand(HWND hwnd, const REBARBANDINFOW *lprbbi, REBAR_BAND *lpBand) REBAR_CommonSetupBand(HWND hwnd, const REBARBANDINFOW *lprbbi, REBAR_BAND *lpBand)
/* Function: This routine copies the supplied values from */ /* Function: This routine copies the supplied values from */
/* user input (lprbbi) to the internal band structure. */ /* user input (lprbbi) to the internal band structure. */
/* It returns true if something changed and false if not. */ /* It returns the mask of what changed. */
{ {
UINT uChanged = 0x0; UINT uChanged = 0x0;
@ -1699,7 +1699,7 @@ REBAR_CommonSetupBand(HWND hwnd, const REBARBANDINFOW *lprbbi, REBAR_BAND *lpBan
if( (lprbbi->fMask & RBBIM_CHILDSIZE) && if( (lprbbi->fMask & RBBIM_CHILDSIZE) &&
( (lpBand->cxMinChild != lprbbi->cxMinChild) || ( (lpBand->cxMinChild != lprbbi->cxMinChild) ||
(lpBand->cyMinChild != lprbbi->cyMinChild ) || (lpBand->cyMinChild != lprbbi->cyMinChild ) ||
( (lprbbi->cbSize >= sizeof (REBARBANDINFOA)) && ( (lprbbi->cbSize >= sizeof (REBARBANDINFOA) && (lpBand->fStyle & RBBS_VARIABLEHEIGHT)) &&
( (lpBand->cyChild != lprbbi->cyChild ) || ( (lpBand->cyChild != lprbbi->cyChild ) ||
(lpBand->cyMaxChild != lprbbi->cyMaxChild ) || (lpBand->cyMaxChild != lprbbi->cyMaxChild ) ||
(lpBand->cyIntegral != lprbbi->cyIntegral ) ) ) || (lpBand->cyIntegral != lprbbi->cyIntegral ) ) ) ||
@ -2422,6 +2422,14 @@ REBAR_InsertBandT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnico
lpBand->iImage = -1; lpBand->iImage = -1;
REBAR_CommonSetupBand(infoPtr->hwndSelf, lprbbi, lpBand); REBAR_CommonSetupBand(infoPtr->hwndSelf, lprbbi, lpBand);
/* Make sure the defaults for these are correct */
if (lprbbi->cbSize < sizeof (REBARBANDINFOA) || !(lpBand->fStyle & RBBS_VARIABLEHEIGHT)) {
lpBand->cyChild = lpBand->cyMinChild;
lpBand->cyMaxChild = 0x7fffffff;
lpBand->cyIntegral = 0;
}
if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) { if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
if (bUnicode) if (bUnicode)
Str_SetPtrW(&lpBand->lpText, lprbbi->lpText); Str_SetPtrW(&lpBand->lpText, lprbbi->lpText);