Index: src/osx/core/dcmemory.cpp =================================================================== --- src/osx/core/dcmemory.cpp (revision 3f66f6a5b3583b02c34854556eb83e3a808524ce) +++ src/osx/core/dcmemory.cpp (revision f5dccf312d657852ca6c3a9b5a46ccd71667e1c8) @@ -87,4 +87,6 @@ CGContextSetStrokeColorSpace( bmCtx, genericColorSpace ); SetGraphicsContext( wxGraphicsContext::CreateFromNative( bmCtx ) ); + if (m_graphicContext) + m_graphicContext->EnableOffset(true); } m_ok = (m_graphicContext != NULL) ; Index: src/common/dcgraph.cpp =================================================================== --- src/common/dcgraph.cpp (revision 148971013ee48926dfe153ca39c94be92acde37c) +++ src/common/dcgraph.cpp (revision b8abf338c8c83ea7f0dcf29b39dfd2223d16c462) @@ -877,8 +877,7 @@ CalcBoundingBox(x + w, y + h); - if ( m_graphicContext->ShouldOffset() ) - { - // if we are offsetting the entire rectangle is moved 0.5, so the - // border line gets off by 1 + if (m_pen.IsOk() && m_pen.GetStyle() != wxPENSTYLE_TRANSPARENT && m_pen.GetWidth() > 0) + { + // outline is one pixel larger than what raster-based wxDC implementations draw w -= 1; h -= 1; @@ -906,8 +905,7 @@ CalcBoundingBox(x + w, y + h); - if ( m_graphicContext->ShouldOffset() ) - { - // if we are offsetting the entire rectangle is moved 0.5, so the - // border line gets off by 1 + if (m_pen.IsOk() && m_pen.GetStyle() != wxPENSTYLE_TRANSPARENT && m_pen.GetWidth() > 0) + { + // outline is one pixel larger than what raster-based wxDC implementations draw w -= 1; h -= 1; @@ -926,11 +924,4 @@ CalcBoundingBox(x + w, y + h); - if ( m_graphicContext->ShouldOffset() ) - { - // if we are offsetting the entire rectangle is moved 0.5, so the - // border line gets off by 1 - w -= 1; - h -= 1; - } m_graphicContext->DrawEllipse(x,y,w,h); }