behaved differently in wxMSW and wxGTK/wxOSX before) if more than one item
is selected in a control with wxDV_MULTIPLE style.
+- wxDC::Blit() now honours the source DC coordinate system in wxMSW, as in all
+ the other ports, do not apply scaling to source coordinates manually any more.
+
Changes in behaviour which may result in compilation errors
-----------------------------------------------------------
target DCs. If you need to apply scaling while copying, use
StretchBlit().
+ Notice that source DC coordinates @a xsrc and @a ysrc are interpreted
+ using the current source DC coordinate system, i.e. the scale, origin
+ position and axis directions are taken into account when transforming
+ them to physical (pixel) coordinates.
+
@param xdest
Destination device context x position.
@param ydest
source or target DC but calling this method is simpler and can also be
more efficient if the platform provides a native implementation of it.
- The meaning of its other parameters is the same as with Blit().
+ The meaning of its other parameters is the same as with Blit(), in
+ particular all source coordinates are interpreted using the source DC
+ coordinate system, i.e. are affected by its scale, origin translation
+ and axis direction.
@param xdest
Destination device context x position.
return false;
}
+ // We need to interpret source-related coordinates in source DC
+ // coordinate system.
+ xsrc = source->LogicalToDeviceX(xsrc);
+ ysrc = source->LogicalToDeviceY(ysrc);
+ srcWidth = source->LogicalToDeviceXRel(srcWidth);
+ srcHeight = source->LogicalToDeviceYRel(srcHeight);
+
const HDC hdcSrc = GetHdcOf(*implSrc);
// if either the source or destination has alpha channel, we must use