From: "Carl J. Bialorucki" cbialo2@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 ));