diff src/w32term.c @ 109296:f6f0d450d542

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).
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Mon, 05 Jul 2010 18:58:31 +0900
parents 1d1d5d9bd884
children 60516122d066 734b2470f93c
line wrap: on
line diff
--- a/src/w32term.c	Sun Jul 04 02:59:56 2010 +0200
+++ b/src/w32term.c	Mon Jul 05 18:58:31 2010 +0900
@@ -761,7 +761,6 @@
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   HDC hdc;
   struct face *face = p->face;
-  int rowY;
 
   hdc = get_frame_dc (f);
 
@@ -820,21 +819,7 @@
     }
 
   /* Must clip because of partially visible lines.  */
-  rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
-  if (p->y < rowY)
-    {
-      /* Adjust position of "bottom aligned" bitmap on partially
-	 visible last row.  */
-      int oldY = row->y;
-      int oldVH = row->visible_height;
-      row->visible_height = p->h;
-      row->y -= rowY - p->y;
-      w32_clip_to_row (w, row, -1, hdc);
-      row->y = oldY;
-      row->visible_height = oldVH;
-    }
-  else
-    w32_clip_to_row (w, row, -1, hdc);
+  w32_clip_to_row (w, row, -1, hdc);
 
   if (p->which && p->which < max_fringe_bmp)
     {