X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c801d85f158c4cba50b588807daabdcbd0ed3853..54fe0dcf9ae97337f3a84b58b371756c1e0fbc0b:/src/gtk/dc.cpp?ds=sidebyside diff --git a/src/gtk/dc.cpp b/src/gtk/dc.cpp index c53c2d26fd..b50ade747a 100644 --- a/src/gtk/dc.cpp +++ b/src/gtk/dc.cpp @@ -3,7 +3,7 @@ // Purpose: // Author: Robert Roebling // Created: 01/02/97 -// Id: +// RCS-ID: $Id$ // Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -137,9 +137,9 @@ void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ) { wxList list; list.DeleteContents(TRUE); - list.Append( new wxPoint(x1, y1) ); - list.Append( new wxPoint(x2, y2) ); - list.Append( new wxPoint(x3, y3) ); + list.Append( (wxObject*)new wxPoint(x1, y1) ); + list.Append( (wxObject*)new wxPoint(x2, y2) ); + list.Append( (wxObject*)new wxPoint(x3, y3) ); DrawSpline(&list); }; @@ -361,10 +361,25 @@ void wxDC::CalcBoundingBox( long x, long y ) void wxDC::ComputeScaleAndOrigin(void) { + // CMB: copy scale to see if it changes + double origScaleX = m_scaleX; + double origScaleY = m_scaleY; + m_scaleX = m_logicalScaleX * m_userScaleX; m_scaleY = m_logicalScaleY * m_userScaleY; m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; + + // CMB: if scale has changed call SetPen to recalulate the line width + if (m_scaleX != origScaleX || m_scaleY != origScaleY) + { + // this is a bit artificial, but we need to force wxDC to think + // the pen has changed + wxPen* pen = GetPen(); + wxPen tempPen; + m_pen = tempPen; + SetPen(pen); + } };