aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2001-03-27 18:02:26 +0000
committerGerd Moellmann2001-03-27 18:02:26 +0000
commit607ec83c511d62037a1dfc5aec2f9fd5e3a57558 (patch)
tree9159eaaa89365809a5c0d4493fc3c187df6334e6 /src
parent0245398f1d9dc305f9414193a2fdb84cfb3601b6 (diff)
downloademacs-607ec83c511d62037a1dfc5aec2f9fd5e3a57558.tar.gz
emacs-607ec83c511d62037a1dfc5aec2f9fd5e3a57558.zip
(try_window_reusing_current_matrix) <scrolling up>:
Give up if matrix starts in an ellipsis. (init_from_display_pos): Do nothing if POS doesn't specify a dpvec_index but the iterator has such a position.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c20
2 files changed, 13 insertions, 12 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index aab2d0a8d6d..5f8ccb8d812 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,10 @@
12001-03-27 Gerd Moellmann <gerd@gnu.org> 12001-03-27 Gerd Moellmann <gerd@gnu.org>
2 2
3 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
4 Give up if matrix starts in an ellipsis.
5 (init_from_display_pos): Do nothing if POS doesn't specify
6 a dpvec_index but the iterator has such a position.
7
3 * xdisp.c (init_from_display_pos): Remove unwarranted assertion. 8 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
4 9
5 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's 10 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
diff --git a/src/xdisp.c b/src/xdisp.c
index bd6a07e05d0..669b0d77ebf 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1871,18 +1871,6 @@ init_from_display_pos (it, w, pos)
1871 xassert (it->dpvec && it->current.dpvec_index == 0); 1871 xassert (it->dpvec && it->current.dpvec_index == 0);
1872 it->current.dpvec_index = pos->dpvec_index; 1872 it->current.dpvec_index = pos->dpvec_index;
1873 } 1873 }
1874 else if (it->current.dpvec_index >= 0)
1875 {
1876 /* I don't think this can happen, just being paranoid... */
1877 it->dpvec = NULL;
1878 it->current.dpvec_index = -1;
1879 if (it->s)
1880 it->method = next_element_from_c_string;
1881 else if (STRINGP (it->string))
1882 it->method = next_element_from_string;
1883 else
1884 it->method = next_element_from_buffer;
1885 }
1886 1874
1887 CHECK_IT (it); 1875 CHECK_IT (it);
1888} 1876}
@@ -10450,6 +10438,13 @@ try_window_reusing_current_matrix (w)
10450 { 10438 {
10451 int first_row_y; 10439 int first_row_y;
10452 10440
10441 /* Don't use this method if the display starts with an ellipsis
10442 displayed for invisible text. It's not easy to handle that case
10443 below, and it's certainly not worth the effort since this is
10444 not a frequent case. */
10445 if (in_ellipses_for_invisible_text_p (&start_row->start, w))
10446 return 0;
10447
10453 IF_DEBUG (debug_method_add (w, "twu1")); 10448 IF_DEBUG (debug_method_add (w, "twu1"));
10454 10449
10455 /* Display up to a row that can be reused. The variable 10450 /* Display up to a row that can be reused. The variable
@@ -10649,6 +10644,7 @@ try_window_reusing_current_matrix (w)
10649 /* Start displaying at the start of first_row_to_display. */ 10644 /* Start displaying at the start of first_row_to_display. */
10650 xassert (first_row_to_display->y < yb); 10645 xassert (first_row_to_display->y < yb);
10651 init_to_row_start (&it, w, first_row_to_display); 10646 init_to_row_start (&it, w, first_row_to_display);
10647
10652 nrows_scrolled = (MATRIX_ROW_VPOS (first_reusable_row, w->current_matrix) 10648 nrows_scrolled = (MATRIX_ROW_VPOS (first_reusable_row, w->current_matrix)
10653 - start_vpos); 10649 - start_vpos);
10654 it.vpos = (MATRIX_ROW_VPOS (first_row_to_display, w->current_matrix) 10650 it.vpos = (MATRIX_ROW_VPOS (first_row_to_display, w->current_matrix)