]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dc.cpp
fixed another @DEBUG@
[wxWidgets.git] / src / gtk / dc.cpp
index c53c2d26fde4a31104c6724d01e8fbee39b1ed4a..b50ade747a938b27d2eb14055abdda594e191795 100644 (file)
@@ -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);
+  }
 };