1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-13 09:32:47 +00: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 @@ Function modeled after x_draw_glyph_string_box ().
int th;
char raised_p;
NSRect br;
struct face *face;
NSTRACE (ns_dumpglyphs_image);
@ -2827,8 +2828,17 @@ Function modeled after x_draw_glyph_string_box ().
/* 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 @@ Function modeled after x_draw_glyph_string_box ().
{
NSRect r[2];
int n, i;
struct face *face;
if (!s->background_filled_p)
{
@ -2940,8 +2951,19 @@ overwriting cursor (usually when cursor on a tab) */
}
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);