[0.4.9][COMCTL32] Workaround regression with toolbar in 7zip CORE-16169

The regression was introduced by SVN r68553 == git 3b13364f05

Many thanks to the author Doug Lyons for excellent
cooperation once more. Always a pleasure.

Fix cherry picked from commits:
0.4.15-dev-663-g cd7db5df89 and
0.4.15-dev-664-g 7c909cbc7c
This commit is contained in:
Joachim Henze 2022-01-23 13:59:53 +01:00
parent 61fa5ea598
commit 0cf7f1acef

View file

@ -1453,6 +1453,11 @@ TOOLBAR_WrapToolbar(TOOLBAR_INFO *infoPtr)
if( !(infoPtr->dwStyle & TBSTYLE_WRAPABLE) &&
!(infoPtr->dwExStyle & TBSTYLE_EX_VERTICAL) ) return;
#ifdef __REACTOS__ /* workaround CORE-16169 part 1 of 2 */
/* if width is zero then return */
if (infoPtr->client_rect.right == 0) return;
#endif
btnPtr = infoPtr->buttons;
x = infoPtr->nIndent;
width = infoPtr->client_rect.right - infoPtr->client_rect.left;
@ -3203,6 +3208,14 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
TRACE("auto sizing, style=%#x\n", infoPtr->dwStyle);
TRACE("nRows: %d, infoPtr->nButtonHeight: %d\n", infoPtr->nRows, infoPtr->nButtonHeight);
#ifdef __REACTOS__ /* workaround CORE-16169 part 2 of 2 */
if ((infoPtr->dwStyle & TBSTYLE_WRAPABLE) || (infoPtr->dwExStyle & TBSTYLE_EX_VERTICAL))
{
TOOLBAR_LayoutToolbar(infoPtr);
InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
}
#endif
if (!(infoPtr->dwStyle & CCS_NORESIZE))
{
RECT window_rect, parent_rect;