diff --git a/src/fl_draw_image_mac.cxx b/src/fl_draw_image_mac.cxx index d45b1c431..41333e4d8 100644 --- a/src/fl_draw_image_mac.cxx +++ b/src/fl_draw_image_mac.cxx @@ -53,8 +53,12 @@ static void innards(const uchar *buf, int X, int Y, int W, int H, { if (!linedelta) linedelta = W*abs(delta); - const void *array = buf; uchar *tmpBuf = 0; + if (!cb) { + if (delta < 0) buf -= (W-1)*(-delta); + if (linedelta < 0) buf -= (H-1)*abs(delta)*W; + } + const void *array = buf; if (cb || Fl_Surface_Device::surface() != Fl_Display_Device::display_device()) { tmpBuf = new uchar[ H*W*abs(delta) ]; if (cb) {