Mercurial > emacs
changeset 81365:22b5fa7b116a
(lookup_image): Save frame foreground and background colors.
(search_image_cache): Check if saved and current frame colors match.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Wed, 13 Jun 2007 08:21:44 +0000 |
parents | 25e0090e9ec6 |
children | d2076a0fec06 |
files | src/image.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/image.c Wed Jun 13 08:21:35 2007 +0000 +++ b/src/image.c Wed Jun 13 08:21:44 2007 +0000 @@ -1647,6 +1647,7 @@ /* If the image spec does not specify a background color, the cached image must have the same background color as the current frame. + Likewise for the foreground color of the cached monochrome image. The following code be improved. For example, jpeg does not support transparency, but currently a jpeg image spec won't match a cached spec created with a different frame background. The @@ -1656,8 +1657,8 @@ for (img = c->buckets[i]; img; img = img->next) if (img->hash == hash && !NILP (Fequal (img->spec, spec)) - && (STRINGP (specified_bg) - || img->background == FRAME_BACKGROUND_PIXEL (f))) + && img->frame_foreground == FRAME_FOREGROUND_PIXEL (f) + && img->frame_background == FRAME_BACKGROUND_PIXEL (f)) break; return img; } @@ -1929,6 +1930,8 @@ img = make_image (spec, hash); cache_image (f, img); img->load_failed_p = img->type->load (f, img) == 0; + img->frame_foreground = FRAME_FOREGROUND_PIXEL (f); + img->frame_background = FRAME_BACKGROUND_PIXEL (f); /* If we can't load the image, and we don't have a width and height, use some arbitrary width and height so that we can