summaryrefslogtreecommitdiff
path: root/src/image.c
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2020-12-15 09:23:37 -0800
committerGlenn Morris <rgm@gnu.org>2020-12-15 09:23:37 -0800
commit6a2c13280c4fb2e154e34af6e3b91dd77592d7ba (patch)
tree1cbd72ffb8f7e38d22c7ec82bd85f0a20cd4bdc8 /src/image.c
parentf3e21483106cb3ff64adcf21d30c8327a23a3401 (diff)
parent62a6934af9c110c28fc1f69f4bb1b79ce9d0c43d (diff)
downloademacs-6a2c13280c4fb2e154e34af6e3b91dd77592d7ba.tar.gz
Merge from origin/emacs-27
62a6934af9 Fix crash when using XRender and restoring image from X (b... de032d41c6 Bind k to image-kill-buffer in doc-view-mode-map.
Diffstat (limited to 'src/image.c')
-rw-r--r--src/image.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/image.c b/src/image.c
index a3301ad2dda..dc06e9ce208 100644
--- a/src/image.c
+++ b/src/image.c
@@ -2170,6 +2170,10 @@ image_set_transform (struct frame *f, struct image *img)
# if !defined USE_CAIRO && defined HAVE_XRENDER
if (!img->picture)
return;
+
+ /* Store the original dimensions as we'll overwrite them later. */
+ img->original_width = img->width;
+ img->original_height = img->height;
# endif
/* Determine size. */
@@ -3029,6 +3033,11 @@ image_get_x_image (struct frame *f, struct image *img, bool mask_p)
if (ximg_in_img)
return ximg_in_img;
+#ifdef HAVE_XRENDER
+ else if (img->picture)
+ return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask,
+ 0, 0, img->original_width, img->original_height, ~0, ZPixmap);
+#endif
else
return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask,
0, 0, img->width, img->height, ~0, ZPixmap);