summaryrefslogtreecommitdiffstats
path: root/generic/tkImgPhoto.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-12-08 11:48:59 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-12-08 11:48:59 (GMT)
commite6de00f4823760bf7cf727e016403825af69e1ae (patch)
treef11fd5a5fe31dc7e8316eca6a811acbc669b8d27 /generic/tkImgPhoto.c
parent913c69580dcdb692f84f8d4235a4c73b3c026c39 (diff)
parent98ca1fc00fa7d5b8ab24e8630ac36d932fa79776 (diff)
downloadtk-e6de00f4823760bf7cf727e016403825af69e1ae.zip
tk-e6de00f4823760bf7cf727e016403825af69e1ae.tar.gz
tk-e6de00f4823760bf7cf727e016403825af69e1ae.tar.bz2
Merge 8.6
Diffstat (limited to 'generic/tkImgPhoto.c')
-rw-r--r--generic/tkImgPhoto.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/generic/tkImgPhoto.c b/generic/tkImgPhoto.c
index e18af43..7f3f228 100644
--- a/generic/tkImgPhoto.c
+++ b/generic/tkImgPhoto.c
@@ -712,15 +712,19 @@ ImgPhotoCmd(
* Copy the image data over using Tk_PhotoPutZoomedBlock.
*/
- block.pixelPtr += options.fromX * block.pixelSize
- + options.fromY * block.pitch;
- block.width = options.fromX2 - options.fromX;
- block.height = options.fromY2 - options.fromY;
- result = Tk_PhotoPutZoomedBlock(interp, (Tk_PhotoHandle) modelPtr,
- &block, options.toX, options.toY, options.toX2 - options.toX,
- options.toY2 - options.toY, options.zoomX, options.zoomY,
- options.subsampleX, options.subsampleY,
- options.compositingRule);
+ if (block.pixelPtr) {
+ block.pixelPtr += options.fromX * block.pixelSize
+ + options.fromY * block.pitch;
+ block.width = options.fromX2 - options.fromX;
+ block.height = options.fromY2 - options.fromY;
+ result = Tk_PhotoPutZoomedBlock(interp, (Tk_PhotoHandle) modelPtr,
+ &block, options.toX, options.toY, options.toX2 - options.toX,
+ options.toY2 - options.toY, options.zoomX, options.zoomY,
+ options.subsampleX, options.subsampleY,
+ options.compositingRule);
+ } else {
+ result = TCL_OK;
+ }
/*
* Set the destination image size if the -shrink option was specified.
@@ -741,8 +745,10 @@ ImgPhotoCmd(
return TCL_ERROR;
}
}
- Tk_ImageChanged(modelPtr->tkModel, 0, 0, 0, 0,
- modelPtr->width, modelPtr->height);
+ if (block.pixelPtr || (options.options & OPT_SHRINK)) {
+ Tk_ImageChanged(modelPtr->tkModel, 0, 0, 0, 0,
+ modelPtr->width, modelPtr->height);
+ }
if (options.background) {
Tk_FreeColor(options.background);
}