From 0bcadfa88f7da527150d5d1040e2e6c65b3aba31 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Tue, 19 May 2015 12:51:55 +0100 Subject: [PATCH] comctl32: Layout the toolbar after a potential resize. --- dlls/comctl32/toolbar.c | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index 54a31ac52c2..97d509e8837 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -3015,38 +3015,28 @@ TOOLBAR_AddStringA (TOOLBAR_INFO *infoPtr, HINSTANCE hInstance, LPARAM lParam) static LRESULT TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr) { - RECT parent_rect; - HWND parent; - INT x, y; - INT cx, cy; - TRACE("auto sizing, style=%x!\n", infoPtr->dwStyle); + TRACE("nRows: %d, infoPtr->nButtonHeight: %d\n", infoPtr->nRows, infoPtr->nButtonHeight); - parent = GetParent (infoPtr->hwndSelf); - - if (!parent || !infoPtr->bDoRedraw) - return 0; - - GetClientRect(parent, &parent_rect); + if (!(infoPtr->dwStyle & CCS_NORESIZE)) + { + RECT window_rect, parent_rect; + UINT uPosFlags = SWP_NOZORDER | SWP_NOACTIVATE; + HWND parent; + INT x, y, cx, cy; - x = parent_rect.left; - y = parent_rect.top; + parent = GetParent (infoPtr->hwndSelf); - TRACE("nRows: %d, infoPtr->nButtonHeight: %d\n", infoPtr->nRows, infoPtr->nButtonHeight); + if (!parent || !infoPtr->bDoRedraw) + return 0; - cy = TOP_BORDER + infoPtr->nRows * infoPtr->nButtonHeight + BOTTOM_BORDER; - cx = parent_rect.right - parent_rect.left; + GetClientRect(parent, &parent_rect); - if ((infoPtr->dwStyle & TBSTYLE_WRAPABLE) || (infoPtr->dwExStyle & TBSTYLE_EX_VERTICAL)) - { - TOOLBAR_LayoutToolbar(infoPtr); - InvalidateRect( infoPtr->hwndSelf, NULL, TRUE ); - } + x = parent_rect.left; + y = parent_rect.top; - if (!(infoPtr->dwStyle & CCS_NORESIZE)) - { - RECT window_rect; - UINT uPosFlags = SWP_NOZORDER | SWP_NOACTIVATE; + cy = TOP_BORDER + infoPtr->nRows * infoPtr->nButtonHeight + BOTTOM_BORDER; + cx = parent_rect.right - parent_rect.left; if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_NOMOVEY) { @@ -3075,6 +3065,12 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr) SetWindowPos(infoPtr->hwndSelf, NULL, x, y, cx, cy, uPosFlags); } + if ((infoPtr->dwStyle & TBSTYLE_WRAPABLE) || (infoPtr->dwExStyle & TBSTYLE_EX_VERTICAL)) + { + TOOLBAR_LayoutToolbar(infoPtr); + InvalidateRect( infoPtr->hwndSelf, NULL, TRUE ); + } + return 0; } -- 2.11.4.GIT