diff --git a/src/servers/app/drawing/DisplayDriverPainter.cpp b/src/servers/app/drawing/DisplayDriverPainter.cpp index dfaf35bef6..74d9295592 100644 --- a/src/servers/app/drawing/DisplayDriverPainter.cpp +++ b/src/servers/app/drawing/DisplayDriverPainter.cpp @@ -391,7 +391,7 @@ DisplayDriverPainter::FillEllipse(const BRect &r, const DrawData *d) fPainter->SetDrawData(d); float xRadius = r.Width() / 2.0; - float yRadius = r.Width() / 2.0; + float yRadius = r.Height() / 2.0; BPoint center(r.left + xRadius, r.top + yRadius); @@ -567,7 +567,7 @@ DisplayDriverPainter::StrokeEllipse(const BRect &r, const DrawData *d) fPainter->SetDrawData(d); float xRadius = r.Width() / 2.0; - float yRadius = r.Width() / 2.0; + float yRadius = r.Height() / 2.0; BPoint center(r.left + xRadius, r.top + yRadius); diff --git a/src/servers/app/drawing/Painter/Painter.cpp b/src/servers/app/drawing/Painter/Painter.cpp index b0e16dc548..cd938028ba 100644 --- a/src/servers/app/drawing/Painter/Painter.cpp +++ b/src/servers/app/drawing/Painter/Painter.cpp @@ -1379,7 +1379,11 @@ Painter::_StrokePath(VertexSource& path) const fOutlineRasterizer->add_path(path); #endif - return _Clipped(_BoundingBox(path)); + BRect touched = _BoundingBox(path); + float penSize = ceilf(fPenSize); + touched.InsetBy(-penSize, -penSize); + + return _Clipped(touched); } // _FillPath