https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cd7db5df89d3f9e8ddce6e909debedc423e3e8a1

commit cd7db5df89d3f9e8ddce6e909debedc423e3e8a1
Author:     Joachim Henze <[email protected]>
AuthorDate: Fri Aug 28 00:53:18 2020 +0200
Commit:     Joachim Henze <[email protected]>
CommitDate: Fri Aug 28 00:53:18 2020 +0200

    [COMCTL32] Workaround regression with toolbar in 7zip CORE-16996
    
    The regression was introduced by SVN r68553
    3b13364f058238213d85a461725002330d3743f9
    
    Many thanks to the author Doug Lyons for excellent
    cooperation once more. Always a pleasure.
---
 dll/win32/comctl32/toolbar.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dll/win32/comctl32/toolbar.c b/dll/win32/comctl32/toolbar.c
index c43dc0c980d..e5ebf3211cc 100644
--- a/dll/win32/comctl32/toolbar.c
+++ b/dll/win32/comctl32/toolbar.c
@@ -1453,6 +1453,11 @@ TOOLBAR_WrapToolbar(TOOLBAR_INFO *infoPtr)
     if( !(infoPtr->dwStyle & TBSTYLE_WRAPABLE) &&
        !(infoPtr->dwExStyle & TBSTYLE_EX_VERTICAL) )  return;
 
+#ifdef __REACTOS__ /* workaround CORE-17244 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-17244 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;

Reply via email to