Module: wine Branch: master Commit: 1b8c98d35da8894faaa33146db7e184fa110674b URL: http://source.winehq.org/git/wine.git/?a=commit;h=1b8c98d35da8894faaa33146db...
Author: Mikołaj Zalewski mikolaj@zalewski.pl Date: Mon Oct 16 17:39:55 2006 +0200
comctl32: rebar: Don't return rectangles with negative width or height in NCCalcSize.
---
dlls/comctl32/rebar.c | 14 ++++++++------ 1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/dlls/comctl32/rebar.c b/dlls/comctl32/rebar.c index c627a3e..d2c8b94 100644 --- a/dlls/comctl32/rebar.c +++ b/dlls/comctl32/rebar.c @@ -4114,17 +4114,19 @@ inline static LRESULT REBAR_NCCalcSize (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam) { HTHEME theme; + RECT *rect = (RECT *)lParam; + if (infoPtr->dwStyle & WS_BORDER) { - InflateRect((LPRECT)lParam, -GetSystemMetrics(SM_CXEDGE), - -GetSystemMetrics(SM_CYEDGE)); + rect->left = min(rect->left + GetSystemMetrics(SM_CXEDGE), rect->right); + rect->right = max(rect->right - GetSystemMetrics(SM_CXEDGE), rect->left); + rect->top = min(rect->top + GetSystemMetrics(SM_CXEDGE), rect->bottom); + rect->bottom = max(rect->bottom - GetSystemMetrics(SM_CXEDGE), rect->top); } else if ((theme = GetWindowTheme (infoPtr->hwndSelf))) { - ((LPRECT)lParam)->top++; + rect->top = min(rect->top + 1, rect->bottom); } - TRACE("new client=(%d,%d)-(%d,%d)\n", - ((LPRECT)lParam)->left, ((LPRECT)lParam)->top, - ((LPRECT)lParam)->right, ((LPRECT)lParam)->bottom); + TRACE("new client=(%d,%d)-(%d,%d)\n", rect->left, rect->top, rect->right, rect->bottom); return 0; }