At 10:28 PM 10/23/99 +0200, Jan Vroonhof wrote:
This patch fixes your scrolling problem for me
Thanks. I assumed it was something like this but never had the opportunity
to test the gnus problem.
Index: redisplay.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/redisplay.c,v
retrieving revision 1.55.2.17
diff -u -u -r1.55.2.17 redisplay.c
--- redisplay.c 1999/09/28 00:43:01 1.55.2.17
+++ redisplay.c 1999/10/23 20:12:45
@@ -7456,7 +7456,7 @@
point_would_be_visible (struct window *w, Bufpos startp, Bufpos point)
{
struct buffer *b = XBUFFER (w->buffer);
- int pixpos = 0;
+ int pixpos = -WINDOW_TEXT_TOP_CLIP(w);
int bottom = WINDOW_TEXT_HEIGHT (w);
int start_elt;
It is also not obvious to me, if, how, why and when the clip is reset
back
to 0.
Its not a perfect solution, its just designed to allow large glyphs to
scroll off the top of the screen instead of just disappearing. Basically I
have changed window_scroll() so that if the required number of lines of
scroll is smaller than the visible glyph heigh divided by the average line
height, then point is kept constant and the top clip is changed. The clip
gets set to zero as soon as you do a normal scroll. I.e. if you scroll by a
real line or scroll more than the amount of visible glyph.
There is an additional problem which is that the top clip only affects the
ascent, so if the descent is quite large, the calculation can be slightly
off and you can get a large part of the line suddenly disappearing.
andy
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd