Commit f4fae9a0 authored by Chong Yidong's avatar Chong Yidong
Browse files

(redisplay_window): If first window line is a continuation line,

recompute the new window start instead of recentering.
parent ef92b69b
......@@ -12968,6 +12968,8 @@ redisplay_window (window, just_this_one_p)
w->force_start = Qt;
}
 
force_start:
/* Handle case where place to start displaying has been specified,
unless the specified location is outside the accessible range. */
if (!NILP (w->force_start)
......@@ -13147,39 +13149,15 @@ redisplay_window (window, just_this_one_p)
than a simple mouse-click. */
if (NILP (w->start_at_line_beg)
&& NILP (do_mouse_tracking)
&& CHARPOS (startp) > BEGV)
&& CHARPOS (startp) > BEGV
&& CHARPOS (startp) > BEG + save_beg_unchanged
&& CHARPOS (startp) <= Z - save_end_unchanged)
{
#if 0
/* The following code tried to make BEG_UNCHANGED and
END_UNCHANGED up to date (similar to try_window_id).
Is it important to do so?
The trouble is that it's a little too strict when it
comes to overlays: modify_overlay can call
BUF_COMPUTE_UNCHANGED, which alters BUF_BEG_UNCHANGED and
BUF_END_UNCHANGED directly without moving the gap.
This can result in spurious recentering when overlays are
altered in the buffer. So unless it's proven necessary,
let's leave this commented out for now. -- cyd. */
if (MODIFF > SAVE_MODIFF
|| BEG_UNCHANGED + END_UNCHANGED > Z_BYTE)
{
if (GPT - BEG < BEG_UNCHANGED)
BEG_UNCHANGED = GPT - BEG;
if (Z - GPT < END_UNCHANGED)
END_UNCHANGED = Z - GPT;
}
#endif
if (CHARPOS (startp) > BEG + save_beg_unchanged
&& CHARPOS (startp) <= Z - save_end_unchanged)
{
/* There doesn't seems to be a simple way to find a new
window start that is near the old window start, so
we just recenter. */
goto recenter;
}
w->force_start = Qt;
if (XMARKER (w->start)->buffer == current_buffer)
compute_window_start_on_continuation_line (w);
SET_TEXT_POS_FROM_MARKER (startp, w->start);
goto force_start;
}
 
#if GLYPH_DEBUG
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment