diff options
| author | YAMAMOTO Mitsuharu | 2010-07-05 18:58:31 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2010-07-05 18:58:31 +0900 |
| commit | 5a874e95ef18724f1658e10785baddaf6761cfd7 (patch) | |
| tree | 749c731920e335a40ac88dc0ac3037eb99df3e23 /src/w32term.c | |
| parent | 0682186e3a4c8d1806e75fb357f2bc244a526183 (diff) | |
| download | emacs-5a874e95ef18724f1658e10785baddaf6761cfd7.tar.gz emacs-5a874e95ef18724f1658e10785baddaf6761cfd7.zip | |
Fix ghost buffer boundary indicators in fringes (Bug#5634, Bug#6325).
* dispextern.h (FRINGE_HEIGHT_BITS): New define.
(struct glyph_row): New members left_fringe_offset and
right_fringe_offset.
* xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
specially.
* w32term.c (w32_draw_fringe_bitmap): Likewise.
* nsterm.m (ns_draw_fringe_bitmap): Likewise.
* fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
Take account of bitmap offset.
(draw_window_fringes): Take account of window vscroll.
(update_window_fringes): Likewise. Extend top-aligned top indicator
or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
in one row. Don't set redraw_fringe_bitmaps_p outside row comparison.
Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
Diffstat (limited to 'src/w32term.c')
| -rw-r--r-- | src/w32term.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/src/w32term.c b/src/w32term.c index 4ed7beda233..801c56bf994 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -761,7 +761,6 @@ w32_draw_fringe_bitmap (w, row, p) | |||
| 761 | struct frame *f = XFRAME (WINDOW_FRAME (w)); | 761 | struct frame *f = XFRAME (WINDOW_FRAME (w)); |
| 762 | HDC hdc; | 762 | HDC hdc; |
| 763 | struct face *face = p->face; | 763 | struct face *face = p->face; |
| 764 | int rowY; | ||
| 765 | 764 | ||
| 766 | hdc = get_frame_dc (f); | 765 | hdc = get_frame_dc (f); |
| 767 | 766 | ||
| @@ -820,21 +819,7 @@ w32_draw_fringe_bitmap (w, row, p) | |||
| 820 | } | 819 | } |
| 821 | 820 | ||
| 822 | /* Must clip because of partially visible lines. */ | 821 | /* Must clip because of partially visible lines. */ |
| 823 | rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); | 822 | w32_clip_to_row (w, row, -1, hdc); |
| 824 | if (p->y < rowY) | ||
| 825 | { | ||
| 826 | /* Adjust position of "bottom aligned" bitmap on partially | ||
| 827 | visible last row. */ | ||
| 828 | int oldY = row->y; | ||
| 829 | int oldVH = row->visible_height; | ||
| 830 | row->visible_height = p->h; | ||
| 831 | row->y -= rowY - p->y; | ||
| 832 | w32_clip_to_row (w, row, -1, hdc); | ||
| 833 | row->y = oldY; | ||
| 834 | row->visible_height = oldVH; | ||
| 835 | } | ||
| 836 | else | ||
| 837 | w32_clip_to_row (w, row, -1, hdc); | ||
| 838 | 823 | ||
| 839 | if (p->which && p->which < max_fringe_bmp) | 824 | if (p->which && p->which < max_fringe_bmp) |
| 840 | { | 825 | { |