]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dc.cpp
fixed FindOrCreatePen/Brush() for the case when the object couldn't be created succes...
[wxWidgets.git] / src / msw / dc.cpp
index b9d10eac95b4f20dc50d28cbf4e02df351e75ba2..b533b340a47e23da29b7e0a02d19a023933b1a13 100644 (file)
@@ -1115,6 +1115,7 @@ void wxDC::SetBackgroundMode(int mode)
         ::SetBkMode(GetHdc(), TRANSPARENT);
     else
         ::SetBkMode(GetHdc(), OPAQUE);
+       Last change:  AC   29 Jan 101    8:54 pm
 */
 }
 
@@ -1333,7 +1334,9 @@ void wxDC::SetDeviceOrigin(wxCoord x, wxCoord y)
 
 wxCoord wxDCBase::DeviceToLogicalX(wxCoord x) const
 {
-    return (wxCoord) (((x) - m_deviceOriginX)/(m_logicalScaleX*m_userScaleX*m_signX*m_scaleX) - m_logicalOriginX);
+    double xRel = x - m_deviceOriginX;
+    xRel /= m_logicalScaleX*m_userScaleX*m_signX*m_scaleX;
+    return (wxCoord)(xRel + m_logicalOriginX);
 }
 
 wxCoord wxDCBase::DeviceToLogicalXRel(wxCoord x) const
@@ -1343,7 +1346,9 @@ wxCoord wxDCBase::DeviceToLogicalXRel(wxCoord x) const
 
 wxCoord wxDCBase::DeviceToLogicalY(wxCoord y) const
 {
-    return (wxCoord) (((y) - m_deviceOriginY)/(m_logicalScaleY*m_userScaleY*m_signY*m_scaleY) - m_logicalOriginY);
+    double yRel = y - m_deviceOriginY;
+    yRel /= m_logicalScaleY*m_userScaleY*m_signY*m_scaleY;
+    return (wxCoord)(yRel + m_logicalOriginY);
 }
 
 wxCoord wxDCBase::DeviceToLogicalYRel(wxCoord y) const
@@ -1440,7 +1445,7 @@ bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest,
         // of the mask which is also contrary to the Windows one)
         success = ::MaskBlt(GetHdc(), xdest, ydest, width, height,
                             GetHdcOf(*source), xsrc, ysrc,
-                            (HBITMAP)mask->GetMaskBitmap(), 0, 0,
+                            (HBITMAP)mask->GetMaskBitmap(), xsrc, ysrc,
                             MAKEROP4(dwRop, DSTCOPY)) != 0;
 
         if ( !success )