bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#3512: Interaction between scroll variables, scroll-up, scroll-down,


From: Paul Whittaker
Subject: bug#3512: Interaction between scroll variables, scroll-up, scroll-down, and redisplay.
Date: Tue, 9 Jun 2009 12:47:10 +0100


There appears to be a bug under the following conditions:

 - Emacs is running in graphical (X11) mode, without the -nw flag;
 - scroll-margin is set to a value greater than 0;
 - scroll-preserve-screen-position is set to a non-nil, non-t value;
 - Point is at or near the start of the buffer (any line <= scroll-margin);
 - An attempt is made to scroll the window using scroll-up;

which leads to:

 - Window contents are not updated correctly.


Less tersely, I have experienced the following sequence of events, on
both Ubuntu 8.10 and Fedora 10 systems.

 - Start emacs with -Q option to launch a fresh Emacs window on the
   desktop.  Set the variables scroll-margin to (say) 5, and
   scroll-preserve-screen-position to 1.  (Setting the latter to
   'always also works.)

 - Populate the buffer with many lines of input.  I normally use the
   output of "ls -R /" and use head to keep only the first couple of
   hundred lines of it.  The exact nature of the content appears not
   to be important, as I have also loaded in files, or used M-:
   (dolist ..... (insert ....)) to populate the buffer.

 - Ensure that point is at the start of the buffer.

 - Attempt to view text that is currently off the bottom of the window
   by pressing Page Down once or more to run the scroll-up command.

 - At this point, the cursor moves to roughly the middle of the
   window, the (GTK) scroll bar moves downwards, but the window
   contents remain the same (i.e. the same text is visible as was
   before pressing Page Down).

 - Further presses of Page Down do not move point visibly, do not
   update the visisble window contents, but *do* move the GTK scroll
   bar.  This makes me believe that (internally) everything is working
   correctly, but the normal text update routines are not being
   called.

 - Using scroll-down (i.e. pressing Page Up) maintains this behaviour:
   the scroll bar moves back in the opposite direction, but the window
   contents are not updated.  The scroll bar can be moved back and
   forth at will using sequences of scroll-up and scroll-down commands
   in this manner.

 - Getting point close to either end of the buffer, or using any other
   command (such as next-line), causes the window contents to be
   updated correctly.  This can lead to a significant apparent jump in
   the position of point.  The location displayed appears to be
   consistent with the number of times that the scroll-down and
   scroll-up commands were used.

 - If the point is moved back to the start of the buffer, e.g. with
   M-<, this behaviour can be repeated as often as desired.

 - Running Emacs with the -nw flag (i.e. running inside an XTerm) does
   not exhibit this behaviour for me.

If you need any more details, please let me know.

Best regards, and happy hunting,

Paul.

PS The Emacs I'm running this on does not have mail set up, so I have
cut and pasted the content into my webmail session.  If for some
reason this has caused a problem, again, let me know.


[Content generated automatically by M-x report-emacs-bug follows:]

In GNU Emacs 22.2.1 (i486-pc-linux-gnu, GTK+ Version 2.14.1)
 of 2008-09-05 on vernadsky, modified by Ubuntu
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs22:/etc/emacs:/usr/local/share/emacs/22.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.2/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/22.2/leim' '--with-x=yes' '--with-x-toolkit=gtk' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g -Wl,--as-needed' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
M-x s e t - v a r i a b l e <return> s c r o l l -
m a r g i n <return> 5 <return> M-x s e t - v a r i
a b l e <return> s c r o l l - p r e s e r v e - s
c r e e n - p o s i t i o n <return> 1 <return> C-u
M-! l s SPC - R SPC / SPC | S-SPC h e a d SPC - 2 0
0 <return> <next> <next> <next> M-x r e p o r t - e
m a c s - b u g <return>

Recent messages:
("emacs" "-Q")
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading help-fns...done
Loading easymenu...done
Loading pp...done
Loading emacsbug...
Loading regexp-opt...done
Loading emacsbug...done


[End of automatically-generated content.]


reply via email to

[Prev in Thread] Current Thread [Next in Thread]