diff src/xdisp.c @ 83253:c0215e820840

Merged from miles@gnu.org--gnu-2005 (patch 91-94) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-91 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-92 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-93 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-94 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-293
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 18 Feb 2005 23:21:20 +0000
parents 3dcba0bc766b 582f5e2fbf3a
children 9684495d72bc
line wrap: on
line diff
--- a/src/xdisp.c	Sat Feb 12 15:11:25 2005 +0000
+++ b/src/xdisp.c	Fri Feb 18 23:21:20 2005 +0000
@@ -13825,7 +13825,12 @@
 			bottom_vpos, dy);
 
   if (first_unchanged_at_end_row)
-    first_unchanged_at_end_row += dvpos;
+    {
+      first_unchanged_at_end_row += dvpos;
+      if (first_unchanged_at_end_row->y >= it.last_visible_y
+	  || !MATRIX_ROW_DISPLAYS_TEXT_P (first_unchanged_at_end_row))
+	first_unchanged_at_end_row = NULL;
+    }
 
   /* If scrolling up, there may be some lines to display at the end of
      the window.  */
@@ -13882,7 +13887,6 @@
 
   /* Update window_end_pos and window_end_vpos.  */
   if (first_unchanged_at_end_row
-      && first_unchanged_at_end_row->y < it.last_visible_y
       && !last_text_row_at_end)
     {
       /* Window end line if one of the preserved rows from the current
@@ -22088,7 +22092,9 @@
 	      || (r.y >= y0 && r.y < y1)
 	      || (r.y + r.height > y0 && r.y + r.height < y1))
 	    {
-	      if (row->overlapping_p)
+	      /* A header line may be overlapping, but there is no need
+		 to fix overlapping areas for them.  KFS 2005-02-12 */
+	      if (row->overlapping_p && !row->mode_line_p)
 		{
 		  if (first_overlapping_row == NULL)
 		    first_overlapping_row = row;