# HG changeset patch # User Kim F. Storm # Date 1076282410 0 # Node ID 693745d24f76eb8a44a4fdf30a97e655d2474294 # Parent 1b20aa00ebc2926a93cc049fa8c6ea169d22a9c2 (x_draw_fringe_bitmap): Copy unadapted code from xterm.c to handle overlayed fringe bitmaps and to use cursor color for displaying cursor in fringe. (x_redisplay_interface): Add null handlers for define_fringe_bitmap and destroy_fringe_bitmap functions. diff -r 1b20aa00ebc2 -r 693745d24f76 src/macterm.c --- a/src/macterm.c Sun Feb 08 23:19:48 2004 +0000 +++ b/src/macterm.c Sun Feb 08 23:20:10 2004 +0000 @@ -1313,7 +1313,7 @@ else x_clip_to_row (w, row, gc); - if (p->bx >= 0) + if (p->bx >= 0 && !p->overlay_p) { XGCValues gcv; gcv.foreground = face->background; @@ -1339,18 +1339,45 @@ #endif } - if (p->which != NO_FRINGE_BITMAP) - { - unsigned char *bits = fringe_bitmaps[p->which].bits + p->dh; + if (p->which) + { + unsigned char *bits = p->bits + p->dh; BitMap bitmap; mac_create_bitmap_from_bitmap_data (&bitmap, bits, p->wd, p->h); gcv.foreground = face->foreground; gcv.background = face->background; +#if 0 /* TODO: fringe overlay_p and cursor_p */ + gcv.foreground = (p->cursor_p + ? (p->overlay_p ? face->background + : f->output_data.mac->cursor_pixel) + : face->foreground)); + + if (p->overlay_p) + { + clipmask = XCreatePixmapFromBitmapData (display, + FRAME_X_DISPLAY_INFO (f)->root_window, + bits, p->wd, p->h, + 1, 0, 1); + gcv.clip_mask = clipmask; + gcv.clip_x_origin = p->x; + gcv.clip_y_origin = p->y; + XChangeGC (display, gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, &gcv); + } +#endif + mac_draw_bitmap (display, window, &gcv, p->x, p->y, &bitmap); - mac_free_bitmap (&bitmap); + +#if 0 /* TODO: fringe overlay_p and cursor_p */ + if (p->overlay_p) + { + gcv.clip_mask = (Pixmap) 0; + XChangeGC (display, gc, GCClipMask, &gcv); + XFreePixmap (display, clipmask); + } +#endif } mac_reset_clipping (display, window); @@ -8517,6 +8544,8 @@ x_get_glyph_overhangs, x_fix_overlapping_area, x_draw_fringe_bitmap, + 0, /* define_fringe_bitmap */ + 0, /* destroy_fringe_bitmap */ mac_per_char_metric, mac_encode_char, NULL, /* mac_compute_glyph_string_overhangs */