aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann1999-08-25 01:05:00 +0000
committerGerd Moellmann1999-08-25 01:05:00 +0000
commit468155d7e908cf1e4e8afc65255ae65062106f97 (patch)
treefcd41d97c723657dc48fa5b1f9e149d09dca1c30 /src
parent26228404554a2c330f6e757fa9c22b744c296d44 (diff)
downloademacs-468155d7e908cf1e4e8afc65255ae65062106f97.tar.gz
emacs-468155d7e908cf1e4e8afc65255ae65062106f97.zip
(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.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 742cd4c89f8..fc17eb6cce9 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -4931,7 +4931,8 @@ message3_nolog (m, nbytes, multibyte)
4931 if (STRINGP (m) && XSTRING (m)->size) 4931 if (STRINGP (m) && XSTRING (m)->size)
4932 { 4932 {
4933 set_message (NULL, m, nbytes, multibyte); 4933 set_message (NULL, m, nbytes, multibyte);
4934 Fraise_frame (frame); 4934 if (minibuffer_auto_raise)
4935 Fraise_frame (frame);
4935 } 4936 }
4936 else 4937 else
4937 clear_message (1, 1); 4938 clear_message (1, 1);
@@ -9891,7 +9892,7 @@ try_window_id (w)
9891 delta = dvpos = dy = run.current_y = run.desired_y = run.height = 0; 9892 delta = dvpos = dy = run.current_y = run.desired_y = run.height = 0;
9892 IF_DEBUG (debug_dvpos = dvpos; debug_dy = dy); 9893 IF_DEBUG (debug_dvpos = dvpos; debug_dy = dy);
9893 9894
9894 9895k
9895 /* Find the cursor if not already found. We have to decide whether 9896 /* Find the cursor if not already found. We have to decide whether
9896 PT will appear on this window (it sometimes doesn't, but this is 9897 PT will appear on this window (it sometimes doesn't, but this is
9897 not a very frequent case.) This decision has to be made before 9898 not a very frequent case.) This decision has to be made before
@@ -9920,6 +9921,7 @@ try_window_id (w)
9920 else if (first_unchanged_at_end_row) 9921 else if (first_unchanged_at_end_row)
9921 { 9922 {
9922 row = first_unchanged_at_end_row; 9923 row = first_unchanged_at_end_row;
9924
9923 while (MATRIX_ROW_DISPLAYS_TEXT_P (row)) 9925 while (MATRIX_ROW_DISPLAYS_TEXT_P (row))
9924 { 9926 {
9925 if (PT - delta >= MATRIX_ROW_START_CHARPOS (row) 9927 if (PT - delta >= MATRIX_ROW_START_CHARPOS (row)
@@ -9933,6 +9935,14 @@ try_window_id (w)
9933 break; 9935 break;
9934 ++row; 9936 ++row;
9935 } 9937 }
9938
9939 /* If PT is at ZV, this is not in a line displaying text.
9940 Check that case. */
9941 if (w->cursor.vpos < 0
9942 && PT - delta == MATRIX_ROW_START_CHARPOS (row)
9943 && row->ends_at_zv_p)
9944 set_cursor_from_row (w, row, w->current_matrix, delta,
9945 delta_bytes, dy, dvpos);
9936 } 9946 }
9937 9947
9938 /* Give up if cursor was not found. */ 9948 /* Give up if cursor was not found. */