diff options
Diffstat (limited to 'src/image.c')
| -rw-r--r-- | src/image.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/image.c b/src/image.c index e2a3902b26c..b62e7bcd2ef 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -2281,6 +2281,10 @@ image_set_transform (struct frame *f, struct image *img) | |||
| 2281 | # if !defined USE_CAIRO && defined HAVE_XRENDER | 2281 | # if !defined USE_CAIRO && defined HAVE_XRENDER |
| 2282 | if (!img->picture) | 2282 | if (!img->picture) |
| 2283 | return; | 2283 | return; |
| 2284 | |||
| 2285 | /* Store the original dimensions as we'll overwrite them later. */ | ||
| 2286 | img->original_width = img->width; | ||
| 2287 | img->original_height = img->height; | ||
| 2284 | # endif | 2288 | # endif |
| 2285 | 2289 | ||
| 2286 | /* Determine size. */ | 2290 | /* Determine size. */ |
| @@ -3140,6 +3144,11 @@ image_get_x_image (struct frame *f, struct image *img, bool mask_p) | |||
| 3140 | 3144 | ||
| 3141 | if (ximg_in_img) | 3145 | if (ximg_in_img) |
| 3142 | return ximg_in_img; | 3146 | return ximg_in_img; |
| 3147 | #ifdef HAVE_XRENDER | ||
| 3148 | else if (img->picture) | ||
| 3149 | return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask, | ||
| 3150 | 0, 0, img->original_width, img->original_height, ~0, ZPixmap); | ||
| 3151 | #endif | ||
| 3143 | else | 3152 | else |
| 3144 | return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask, | 3153 | return XGetImage (FRAME_X_DISPLAY (f), !mask_p ? img->pixmap : img->mask, |
| 3145 | 0, 0, img->width, img->height, ~0, ZPixmap); | 3154 | 0, 0, img->width, img->height, ~0, ZPixmap); |