10365 |
} |
} |
10366 |
|
|
10367 |
if (!make_cursor_line_fully_visible (w)) |
if (!make_cursor_line_fully_visible (w)) |
10368 |
goto try_to_scroll; |
{ |
10369 |
|
/* CVS rev. 1.761 had changed this to ``goto try_to_scroll''. |
10370 |
|
|
10371 |
|
The intention of the fix -- AFAIU -- was to ensure that |
10372 |
|
the cursor didn't end up on a partially visible last (or |
10373 |
|
first?) line when scrolling. |
10374 |
|
|
10375 |
|
|
10376 |
|
But that change causes havoc when scrolling backwards and |
10377 |
|
a partially visible first (or last?) line is present when |
10378 |
|
we reach the top of the buffer. In effect, the text |
10379 |
|
already in the window is repeated (each line is appended |
10380 |
|
to the same or another lines in the window)... |
10381 |
|
|
10382 |
|
I changed it back to ``goto need_larger_matrices'' which |
10383 |
|
in effect mean that we don't go through `try_scrolling' |
10384 |
|
when the cursor is already at the first line of the buffer, |
10385 |
|
and there is really only a few pixels [rather than lines] |
10386 |
|
to scroll backwards. I guess move_it_by_lines etc. really |
10387 |
|
isn't the right device for doing that, ref. the code in |
10388 |
|
make_cursor_line_fully_visible which was also disabled by |
10389 |
|
CVS rev. 1.761. |
10390 |
|
|
10391 |
|
But how do we know that we are already on the top line of |
10392 |
|
the window showing the first line in the buffer, so that |
10393 |
|
scrolling really wont help here? |
10394 |
|
|
10395 |
|
I cannot find a simple fix for this (I tried various |
10396 |
|
approaches), but I prefer to an occasional partial line |
10397 |
|
rather than the visual messup, so I reverted this part of |
10398 |
|
the fix. |
10399 |
|
|
10400 |
|
Someone will need to look into this when time allows. |
10401 |
|
|
10402 |
|
-- 2002-08-22, Kim F. Storm */ |
10403 |
|
|
10404 |
|
goto need_larger_matrices; |
10405 |
|
} |
10406 |
#if GLYPH_DEBUG |
#if GLYPH_DEBUG |
10407 |
debug_method_add (w, "forced window start"); |
debug_method_add (w, "forced window start"); |
10408 |
#endif |
#endif |