1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-26 23:31:55 -08:00

ns_dumpglyphs_stretch, ns_dumpglyphs_image: respect mouse face background.

This commit is contained in:
David Reitter 2009-05-07 13:46:56 +00:00
parent 2d82a920da
commit 85bd26158c

View file

@ -2808,6 +2808,7 @@ ns_dumpglyphs_image (struct glyph_string *s, NSRect r)
int th;
char raised_p;
NSRect br;
struct face *face;
NSTRACE (ns_dumpglyphs_image);
@ -2827,8 +2828,17 @@ ns_dumpglyphs_image (struct glyph_string *s, NSRect r)
/* Draw BG: if we need larger area than image itself cleared, do that,
otherwise, since we composite the image under NS (instead of mucking
with its background color), we must clear just the image area. */
[ns_lookup_indexed_color (NS_FACE_BACKGROUND
(FACE_FROM_ID (s->f, s->first_glyph->face_id)), s->f) set];
if (s->hl == DRAW_MOUSE_FACE)
{
face = FACE_FROM_ID
(s->f, FRAME_NS_DISPLAY_INFO (s->f)->mouse_face_face_id);
if (!face)
face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
}
else
face = FACE_FROM_ID (s->f, s->first_glyph->face_id);
[ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f) set];
if (bg_height > s->slice.height || s->img->hmargin || s->img->vmargin
|| s->img->mask || s->img->pixmap == 0 || s->width != s->background_width)
@ -2899,6 +2909,7 @@ ns_dumpglyphs_stretch (struct glyph_string *s)
{
NSRect r[2];
int n, i;
struct face *face;
if (!s->background_filled_p)
{
@ -2940,8 +2951,19 @@ ns_dumpglyphs_stretch (struct glyph_string *s)
}
ns_focus (s->f, r, n);
[ns_lookup_indexed_color (NS_FACE_BACKGROUND
(FACE_FROM_ID (s->f, s->first_glyph->face_id)), s->f) set];
if (s->hl == DRAW_MOUSE_FACE)
{
face = FACE_FROM_ID
(s->f, FRAME_NS_DISPLAY_INFO (s->f)->mouse_face_face_id);
if (!face)
face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
}
else
face = FACE_FROM_ID (s->f, s->first_glyph->face_id);
[ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f) set];
NSRectFill (r[0]);
NSRectFill (r[1]);
ns_unfocus (s->f);