aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32term.c
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2010-07-05 18:58:31 +0900
committerYAMAMOTO Mitsuharu2010-07-05 18:58:31 +0900
commit5a874e95ef18724f1658e10785baddaf6761cfd7 (patch)
tree749c731920e335a40ac88dc0ac3037eb99df3e23 /src/w32term.c
parent0682186e3a4c8d1806e75fb357f2bc244a526183 (diff)
downloademacs-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.c17
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 {