diff --git a/widget/ScrollbarDrawingCocoa.cpp b/widget/ScrollbarDrawingCocoa.cpp index 3454044bef84..c79911591969 100644 --- a/widget/ScrollbarDrawingCocoa.cpp +++ b/widget/ScrollbarDrawingCocoa.cpp @@ -162,11 +162,17 @@ static ThumbRect GetThumbRect(const LayoutDeviceRect& aRect, } thickness *= aScale; - // Compute the thumb rect. - const float outerSpacing = - ((aParams.isOverlay || aParams.isSmall) ? 1.0f : 2.0f) * aScale; LayoutDeviceRect thumbRect = aRect; thumbRect.Deflate(1.0f * aScale); + // Compute the thumb rect. The thumb rect is centered in non-overlay mode, + // and spaced in overlay mode. + const float outerSpacing = [&] { + if (aParams.isOverlay) { + return 1.0f * aScale; + } + float size = aParams.isHorizontal ? thumbRect.Height() : thumbRect.Width(); + return (size - thickness) / 2.0f; + }(); if (aParams.isHorizontal) { float bottomEdge = thumbRect.YMost() - outerSpacing; thumbRect.SetBoxY(bottomEdge - thickness, bottomEdge);