Alexandre Julliard : comctl32: Fix positioning of toolbars that have the WS_BORDER style.
Alexandre Julliard
julliard at winehq.org
Tue Jul 20 11:20:33 CDT 2010
Module: wine
Branch: master
Commit: af6fb4712fd841f17583f1fb32a50089d70f9820
URL: http://source.winehq.org/git/wine.git/?a=commit;h=af6fb4712fd841f17583f1fb32a50089d70f9820
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jul 20 14:29:24 2010 +0200
comctl32: Fix positioning of toolbars that have the WS_BORDER style.
---
dlls/comctl32/toolbar.c | 11 +++++------
1 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index fe782c3..9b41732 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -3028,7 +3028,7 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
if (!(infoPtr->dwStyle & CCS_NORESIZE))
{
RECT window_rect;
- UINT uPosFlags = SWP_NOZORDER;
+ UINT uPosFlags = SWP_NOZORDER | SWP_NOACTIVATE;
if ((infoPtr->dwStyle & CCS_BOTTOM) == CCS_NOMOVEY)
{
@@ -3050,9 +3050,8 @@ TOOLBAR_AutoSize (TOOLBAR_INFO *infoPtr)
if (infoPtr->dwStyle & WS_BORDER)
{
- x = y = 1; /* FIXME: this looks wrong */
- cy += GetSystemMetrics(SM_CYEDGE);
- cx += GetSystemMetrics(SM_CXEDGE);
+ cy += 2 * GetSystemMetrics(SM_CXBORDER);
+ cx += 2 * GetSystemMetrics(SM_CYBORDER);
}
SetWindowPos(infoPtr->hwndSelf, NULL, x, y, cx, cy, uPosFlags);
@@ -4842,7 +4841,7 @@ TOOLBAR_SetRows (TOOLBAR_INFO *infoPtr, WPARAM wParam, LPRECT lprc)
SetWindowPos(infoPtr->hwndSelf, NULL, 0, 0,
infoPtr->rcBound.right - infoPtr->rcBound.left,
infoPtr->rcBound.bottom - infoPtr->rcBound.top,
- SWP_NOMOVE);
+ SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
}
/* repaint toolbar */
@@ -6007,7 +6006,7 @@ TOOLBAR_NCPaint (HWND hwnd, WPARAM wParam, LPARAM lParam)
GetWindowRect (hwnd, &rcWindow);
OffsetRect (&rcWindow, -rcWindow.left, -rcWindow.top);
if( dwStyle & WS_BORDER )
- OffsetRect (&rcWindow, 1, 1);
+ InflateRect (&rcWindow, -1, -1);
DrawEdge (hdc, &rcWindow, EDGE_ETCHED, BF_TOP);
}
More information about the wine-cvs
mailing list