unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll
@ 2012-04-15 19:24 Toby Cubitt
  2012-04-15 20:41 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Toby Cubitt @ 2012-04-15 19:24 UTC (permalink / raw)
  To: 11249

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: tsc25@cantab.net
web:   www.dr-qubit.org





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll
  2012-04-15 19:24 Toby Cubitt
@ 2012-04-15 20:41 ` Eli Zaretskii
  2012-04-15 21:04   ` Toby Cubitt
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2012-04-15 20:41 UTC (permalink / raw)
  To: Toby Cubitt; +Cc: 11249

> Date: Sun, 15 Apr 2012 21:24:39 +0200
> From: Toby Cubitt <tsc25@cantab.net>
> 
> 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 is not a bug, but a feature: Emacs does not allow the cursor to
enter a partially visible line; it scrolls the buffer to make the line
with the cursor fully visible.  Displaying characters in the
font-lock-warning-face makes them slightly larger (because that face
makes the characters bold), and that can cause the last line to exceed
the visible portion of the window.

> 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).

If that face also enlarges the characters, this is a feature of the
Emacs display engine.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll
  2012-04-15 20:41 ` Eli Zaretskii
@ 2012-04-15 21:04   ` Toby Cubitt
  0 siblings, 0 replies; 4+ messages in thread
From: Toby Cubitt @ 2012-04-15 21:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-orgmode, 11249

On Sun, Apr 15, 2012 at 11:41:00PM +0300, Eli Zaretskii wrote:
> > Date: Sun, 15 Apr 2012 21:24:39 +0200
> > From: Toby Cubitt <tsc25@cantab.net>
> > 
> > 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 is not a bug, but a feature: Emacs does not allow the cursor to
> enter a partially visible line; it scrolls the buffer to make the line
> with the cursor fully visible.  Displaying characters in the
> font-lock-warning-face makes them slightly larger (because that face
> makes the characters bold), and that can cause the last line to exceed
> the visible portion of the window.

Aha, that makes sense.

> > 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).
> 
> If that face also enlarges the characters, this is a feature of the
> Emacs display engine.

Yup, I chose `font-lock-warning-face' in the steps to reproduce because
org-mode sets `org-warning' face to this by default.

Even if this behaviour is related to a display engine feature, this is
nonetheless a bug in `org-read-date'.

It's very irritating to have the top part of the calendar scroll off the
top of the window. Apart from being ugly, it hides the month and day
names (in addition to half the dates), making it very difficult to select
the desired date.

The obvious solution is for org-mode to use a face that doesn't enlarge
the characters. I imagine that would mean defining a separate org-mode
face specifically for highlighting the date in the calendar, since
`org-warning' is used for all kinds of other things in org-mode for which
bold characters make sense (e.g. warning about todo items whose deadline
is due).

I've copied this to the org-mode mailing list, since presumably the
org-mode maintainers will have to take care of this.

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

email: tsc25@cantab.net
web:   www.dr-qubit.org





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll
       [not found] <20120415210416.GA28522@c3po.home>
@ 2012-04-16  2:50 ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2012-04-16  2:50 UTC (permalink / raw)
  To: Toby Cubitt; +Cc: 11249

> Date: Sun, 15 Apr 2012 23:04:16 +0200
> Cc: 11249@debbugs.gnu.org, emacs-orgmode@gnu.org
> From: Toby Cubitt <toby-dated-1335733484.f898fc@dr-qubit.org>
> 
> The obvious solution is for org-mode to use a face that doesn't enlarge
> the characters.

Another solution would be to enlarge the calendar window by one line.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-04-16  2:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20120415210416.GA28522@c3po.home>
2012-04-16  2:50 ` bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll Eli Zaretskii
2012-04-15 19:24 Toby Cubitt
2012-04-15 20:41 ` Eli Zaretskii
2012-04-15 21:04   ` Toby Cubitt

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).