Subject: bug#6325: 24.0.50; Fringe not correctly updated when using set-window-vscroll

From: David Engster <[email-masked]>
Date: Tue, 01 Jun 2010 15:24:13 +0200

(Note: This bug is also visible on Emacs 23).

Recipe:

* emacs -Q

* In the scratch buffer evaluate

  (progn
    (setq indicate-buffer-boundaries 'left)
    (insert (make-string 100 10))
    (goto-char (point-min))
    (forward-line 5)
    (redisplay)
    (set-window-vscroll nil 1))

* There are now two arrows in the fringe on the lower left side, but it
  should only be one at the bottom.

* Adding more 'set-window-vscrolls' will add more arrows. For example,
  this will create four:

  (progn
    (setq indicate-buffer-boundaries 'left)
    (insert (make-string 100 10))
    (goto-char (point-min))
    (forward-line 5)
    (redisplay)
    (set-window-vscroll nil 1)
    (redisplay)
    (set-window-vscroll nil 2)
    (redisplay)
    (set-window-vscroll nil 3))

* The same happens with pixel (fractional) scrolling, it'll just makes
  the arrows overlap:

  (progn
    (setq indicate-buffer-boundaries 'left)
    (insert (make-string 100 10))
    (goto-char (point-min))
    (forward-line 5)
    (redisplay)
    (set-window-vscroll nil 3 t))

Regards,
David

In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
Windowing system distributor `The X.Org Foundation', version 11.0.10706000
configured using `configure  '--prefix=/opt/emacs24''

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_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: (only . t)

Recent input:
<down-mouse-2> <mouse-2> <left> <left> <left> SPC t 
<left> <left> 0 <backspace> <backspace> 3 C-e ) C-x 
C-e <down-mouse-1> <mouse-movement> <mouse-movement> 
<drag-mouse-1> M-x r e p o r t - e m <tab> <return

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Mark set
3

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr message sendmail regexp-opt rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mailabbrev mail-utils
gmm-utils mailheader emacsbug tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev loaddefs button minibuffer faces cus-face files text-properties
overlay md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting font-render-setting gtk x-toolkit x multi-tty emacs)