Subject: 25.0.50; visual-line-mode and invisible text causes cursor to jump

From: [email-masked]
Date: Sat, 05 Dec 2015 15:47:00 -0500

emacs -Q output.txt
M-x visual-line-mode
;; Scroll just after the long line of text in the middle of the screen,
;; then position the cursor at the first character at that visual line.
C-M-: (add-text-properties (point) (1+ (point)) '(invisible t))
next-line
recenter-top-bottom
previous-line

The cursor should jump to the top of the screen.  This isn't always the
case, as it sometimes moves to the bottom.  It seems to only happen when
the window needs to be repositioned.

As you may be able to tell from the output below, I'm running from the
emacs-25 branch.

In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.5)
 of 2015-12-02
Repository revision: 4d10a7d467b6b0927036387c0d4849b2f40abcee
Windowing system distributor 'The X.Org Foundation', version 11.0.11800000
System Description:	Parabola GNU/Linux-libre

Configured using:
 'configure --prefix=/home/skolar/source/src'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-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
  visual-line-mode: t
  transient-mark-mode: t

Recent messages:
Wrote /home/skolar/.emacs.d/output.txt
Visual-Line mode enabled in current buffer
Undo!
t
0 (#o0, #x0, ?\C-@)
Saving file /home/skolar/.emacs.d/output.txt...
Wrote /home/skolar/.emacs.d/output.txt
Quit
Making completion list...
next-line: End of buffer

Load-path shadows:
None found.

Features:
(seq byte-opt gv bytecomp byte-compile cconv cl-extra wid-edit
descr-text pp shadow sort gnus-util mail-extr emacsbug message dired
format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib
mail-prsvr mail-utils time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 91128 16179)
 (symbols 48 19947 6)
 (miscs 40 74 221)
 (strings 32 15597 7343)
 (string-bytes 1 469318)
 (vectors 16 12823)
 (vector-slots 8 432837 9867)
 (floats 8 163 161)
 (intervals 56 244 11)
 (buffers 976 15)
 (heap 1024 46195 1614))