From: "Carl J. Bialorucki" <cbialo2(a)outlook.com> --- dlls/comctl32/tooltips.c | 2 +- dlls/win32u/region.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dlls/comctl32/tooltips.c b/dlls/comctl32/tooltips.c index c105b3ca7e4..1f553292eeb 100644 --- a/dlls/comctl32/tooltips.c +++ b/dlls/comctl32/tooltips.c @@ -808,7 +808,7 @@ TOOLTIPS_Show (TOOLTIPS_INFO *infoPtr, BOOL track_activate) hRgn = CreateRoundRectRgn(0, (infoPtr->bToolBelow ? BALLOON_STEMHEIGHT : 0), rect.right - rect.left, - (infoPtr->bToolBelow ? rect.bottom - rect.top : rect.bottom - rect.top - BALLOON_STEMHEIGHT), + (infoPtr->bToolBelow ? rect.bottom - rect.top : rect.bottom - rect.top - BALLOON_STEMHEIGHT + 1), BALLOON_ROUNDEDNESS, BALLOON_ROUNDEDNESS); CombineRgn(hRgn, hRgn, hrStem, RGN_OR); diff --git a/dlls/win32u/region.c b/dlls/win32u/region.c index b15183b85f7..f32984d1c54 100644 --- a/dlls/win32u/region.c +++ b/dlls/win32u/region.c @@ -701,6 +701,9 @@ HRGN WINAPI NtGdiCreateRoundRectRgn( INT left, INT top, INT right, INT bottom, if (left > right) { INT tmp = left; left = right; right = tmp; } if (top > bottom) { INT tmp = top; top = bottom; bottom = tmp; } + /* the region is for the rectangle interior, but only at right and bottom for some reason */ + right--; + bottom--; ellipse_width = min( right - left, abs( ellipse_width )); ellipse_height = min( bottom - top, abs( ellipse_height )); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3547