diff --git a/widget/Theme.cpp b/widget/Theme.cpp index 6567c913a341..971551387b40 100644 --- a/widget/Theme.cpp +++ b/widget/Theme.cpp @@ -652,14 +652,13 @@ void Theme::PaintRadioControl(PaintBackendData& aPaintData, } if (aState.HasState(ElementState::CHECKED)) { - const CSSCoord kInnerBorderWidth = 2.0f; LayoutDeviceRect rect(aRect); - auto width = LayoutDeviceCoord( - ThemeDrawing::SnapBorderWidth(kInnerBorderWidth, aDpiRatio)); - rect.Deflate(width); - - PaintStrokedCircle(aPaintData, rect, backgroundColor, checkColor, - kInnerBorderWidth, aDpiRatio); + // Make the inner white dot take ~half of the checkbox (snapped to device + // pixels). + rect.Deflate(std::max(LayoutDeviceIntCoord(1), + (LayoutDeviceCoord(rect.width) * 0.25f).Truncated())); + PaintStrokedCircle(aPaintData, rect, checkColor, sTransparent, 0, + aDpiRatio); } if (aState.HasState(ElementState::FOCUSRING)) {