Subject: 24.1.50; Overlay with face property causes calendar buffer to scroll

From: Toby Cubitt <[email-masked]>
Date: Sun, 15 Apr 2012 21:24:39 +0200

Steps to reproduce:

1. emacs -Q
2. M-x calendar
3. M-: (setq o (make-overlay 1 2))
4. M-: (overlay-put o 'face 'font-lock-warning-face)
5. Use C-n to move point to date in the last line of calendar

Symptoms:

When the point moves to the last line of the calendar in step 5., the
calendar buffer scrolls down, so that the top part of the calendar
scrolls off the top of the window and can't be seen.

This scrolling bug doesn't occur if a calendar buffer is displayed
normally, without creating any overlays (i.e. skipping steps 3. and
4. above).

Indeed, skipping just step 4. is sufficient to avoid triggering the
scrolling bug. So it looks like the bug is triggered by the presence of
an overlay with non-null 'face property in the calendar buffer. (One
futher point that might be useful to note: the bug is *not* triggered by
zero-length overlays.)

The above steps are a minimal sequence needed to reproduce the bug. In
everyday Emacs use, the bug is triggered by date selection via
`org-read-date' in org-mode (which uses an overlay with non-null 'face
property in the calendar buffer to highlight the current date).

In GNU Emacs 24.1.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.8)
 of 2012-04-10 on c3po
Windowing system distributor `The X.Org Foundation', version 11.0.11102000
Configured using:
 `configure '--prefix=/usr' '--host=i686-pc-linux-gnu'
 '--mandir=/usr/share/man' '--infodir=/usr/share/info'
 '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib'
 '--program-suffix=-emacs-24' '--infodir=/usr/share/info/emacs-24'
 '--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.5.3/../../../../lib'
 '--with-gameuser=games' '--without-compress-info'
 '--disable-maintainer-mode' '--without-hesiod' '--without-kerberos'
 '--without-kerberos5' '--with-gpm' '--with-dbus' '--without-gnutls'
 '--without-xml2' '--without-selinux' '--without-sound' '--with-x'
 '--without-ns' '--without-gconf' '--without-gsettings'
 '--with-toolkit-scroll-bars' '--without-wide-int' '--without-gif'
 '--without-jpeg' '--with-png' '--with-rsvg' '--without-tiff'
 '--with-xpm' '--without-imagemagick' '--with-xft' '--without-libotf'
 '--without-m17n-flt' '--with-x-toolkit=gtk' 'EBZR_BRANCH=trunk'
 'EBZR_REVNO=107836' '--build=i686-pc-linux-gnu'
 '--disable-dependency-tracking' 'build_alias=i686-pc-linux-gnu'
 'host_alias=i686-pc-linux-gnu' 'CFLAGS=-march=prescott -O2 -pipe -O2'
 'LDFLAGS=-Wl,-O1 -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
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Calendar

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: t

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils jka-compr find-func org byte-opt warnings bytecomp
byte-compile cconv macroexp advice help-fns advice-preload ob-emacs-lisp
ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys
ob ob-eval org-pcomplete pcomplete comint ansi-color ring org-list
org-faces org-compat org-entities org-macs noutline outline easy-mmode
format-spec help-mode view debug mule-util cal-move regexp-opt cal-menu
easymenu calendar cal-loaddefs time-date 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
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
minibuffer loaddefs button faces cus-face files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Toby
-- 
Dr T. S. Cubitt
Mathematics and Quantum Information group
Department of Mathematics
Complutense University
Madrid, Spain

email: [email-masked]
web:   www.dr-qubit.org