changeset 25393:9aff86718a20

(try_window_id): Recognize case that PT == ZV and in unchanged text at the bottom when computing the cursor position. (message3_nolog): Raise frame only if minibuffer_auto_raise is set.
author Gerd Moellmann <gerd@gnu.org>
date Wed, 25 Aug 1999 01:05:00 +0000
parents d193b3ae681f
children ed9fe1a2c8ae
files src/xdisp.c
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Wed Aug 25 01:04:57 1999 +0000
+++ b/src/xdisp.c	Wed Aug 25 01:05:00 1999 +0000
@@ -4931,7 +4931,8 @@
       if (STRINGP (m) && XSTRING (m)->size)
 	{
 	  set_message (NULL, m, nbytes, multibyte);
-	  Fraise_frame (frame);
+	  if (minibuffer_auto_raise)
+	    Fraise_frame (frame);
 	}
       else
 	clear_message (1, 1);
@@ -9891,7 +9892,7 @@
     delta = dvpos = dy = run.current_y = run.desired_y = run.height = 0;
   IF_DEBUG (debug_dvpos = dvpos; debug_dy = dy);
 
-  
+k  
   /* Find the cursor if not already found.  We have to decide whether
      PT will appear on this window (it sometimes doesn't, but this is
      not a very frequent case.)  This decision has to be made before
@@ -9920,6 +9921,7 @@
       else if (first_unchanged_at_end_row)
 	{
 	  row = first_unchanged_at_end_row;
+	  
 	  while (MATRIX_ROW_DISPLAYS_TEXT_P (row))
 	    {
 	      if (PT - delta >= MATRIX_ROW_START_CHARPOS (row)
@@ -9933,6 +9935,14 @@
 		break;
 	      ++row;
 	    }
+
+	  /* If PT is at ZV, this is not in a line displaying text.
+	     Check that case.  */
+	  if (w->cursor.vpos < 0
+	      && PT - delta == MATRIX_ROW_START_CHARPOS (row)
+	      && row->ends_at_zv_p)
+	    set_cursor_from_row (w, row, w->current_matrix, delta,
+				 delta_bytes, dy, dvpos);
 	}
 
       /* Give up if cursor was not found.  */