From 3505ea701237ad94d57200cd4ba6bc768a8eef3d Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Tue, 18 May 1993 22:45:53 +0000 Subject: [PATCH] * xdisp.c (redisplay_window): Make the scrollbar reflect the extent of the visible region, not the whole buffer. --- src/xdisp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index ba33e111387..562e10aafbd 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1060,6 +1060,11 @@ redisplay_window (window, just_this_one) int start, end, whole; /* Calculate the start and end positions for the current window. + At some point, it would be nice to choose between scrollbars + which reflect the whole buffer size, with special markers + indicating narrowing, and scrollbars which reflect only the + visible region. + Note that minibuffers sometimes aren't displaying any text. */ if (! MINI_WINDOW_P (w) || (w == XWINDOW (minibuf_window) && ! echo_area_glyphs)) @@ -1068,7 +1073,10 @@ redisplay_window (window, just_this_one) /* I don't think this is guaranteed to be right. For the moment, we'll pretend it is. */ end = Z - XINT (w->window_end_pos); - whole = Z - BEG; + whole = ZV - BEGV; + + if (end < start) end = start; + if (whole > (end - start)) whole = end - start; } else start = end = whole = 0;