summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1996-02-21 21:09:52 +0000
committerKarl Heuer <kwzh@gnu.org>1996-02-21 21:09:52 +0000
commit3dcd07e339a53b32ad61e6c7ac8c25b020c7d795 (patch)
treee67a6cb7a8ad63ef54c5c0f8a718fd953118fa92
parent6ed6233b68b5d0d9b896a99383d00f3e78c54fad (diff)
downloademacs-3dcd07e339a53b32ad61e6c7ac8c25b020c7d795.tar.gz
(redisplay_window): If window-scroll-functions change
the start position, redisplay from the new one.
-rw-r--r--src/xdisp.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 3430c98d211..7fc3425dc0d 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1546,8 +1546,11 @@ redisplay_window (window, just_this_one)
update_mode_line = 1;
w->update_mode_line = Qt;
if (! NILP (Vwindow_scroll_functions))
- run_hook_with_args_2 (Qwindow_scroll_functions, window,
- make_number (startp));
+ {
+ run_hook_with_args_2 (Qwindow_scroll_functions, window,
+ make_number (startp));
+ startp = marker_position (w->start);
+ }
}
XSETFASTINT (w->last_modified, 0);
if (startp < BEGV) startp = BEGV;
@@ -1722,8 +1725,11 @@ redisplay_window (window, just_this_one)
if (PT >= pos.bufpos)
{
if (! NILP (Vwindow_scroll_functions))
- run_hook_with_args_2 (Qwindow_scroll_functions, window,
- make_number (pos.bufpos));
+ {
+ run_hook_with_args_2 (Qwindow_scroll_functions, window,
+ make_number (pos.bufpos));
+ pos.bufpos = marker_position (w->start);
+ }
try_window (window, pos.bufpos);
if (cursor_vpos >= 0)
{
@@ -1750,8 +1756,11 @@ recenter:
in case the window-scroll-functions functions get errors. */
Fset_marker (w->start, make_number (pos.bufpos), Qnil);
if (! NILP (Vwindow_scroll_functions))
- run_hook_with_args_2 (Qwindow_scroll_functions, window,
- make_number (pos.bufpos));
+ {
+ run_hook_with_args_2 (Qwindow_scroll_functions, window,
+ make_number (pos.bufpos));
+ pos.bufpos = marker_position (w->start);
+ }
try_window (window, pos.bufpos);
startp = marker_position (w->start);