(lookup_image): Save frame foreground and background colors.
(search_image_cache): Check if saved and current frame colors match.
This commit is contained in:
parent
f6b5464848
commit
c5b8e0eaed
2 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
2007-06-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* dispextern.h (struct image) [HAVE_WINDOW_SYSTEM]: New members
|
||||
frame_foreground and frame_background.
|
||||
|
||||
* image.c (lookup_image): Save frame foreground and background colors.
|
||||
(search_image_cache): Check if saved and current frame colors match.
|
||||
|
||||
2007-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* regex.c (regex_compile): Remove the `regnum' counter.
|
||||
|
|
|
@ -1647,6 +1647,7 @@ search_image_cache (f, spec, hash)
|
|||
|
||||
/* 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 @@ search_image_cache (f, spec, hash)
|
|||
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 @@ lookup_image (f, spec)
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue