From mboxrd@z Thu Jan 1 00:00:00 1970 From: Toby Cubitt Subject: Re: bug#11249: 24.1.50; Overlay with face property causes calendar buffer to scroll Date: Sun, 15 Apr 2012 23:04:16 +0200 Message-ID: <20120415210416.GA28522@c3po.home> References: <83zkaczq1v.fsf@gnu.org> Reply-To: Toby Cubitt Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([208.118.235.92]:55541) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SJWcr-0006Os-2j for emacs-orgmode@gnu.org; Sun, 15 Apr 2012 17:04:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SJWcp-0000n7-6K for emacs-orgmode@gnu.org; Sun, 15 Apr 2012 17:04:48 -0400 Received: from sanddollar.geekisp.com ([216.168.135.167]:46120) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SJWcp-0000lp-2C for emacs-orgmode@gnu.org; Sun, 15 Apr 2012 17:04:47 -0400 Content-Disposition: inline In-Reply-To: <83zkaczq1v.fsf@gnu.org> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eli Zaretskii Cc: emacs-orgmode@gnu.org, 11249@debbugs.gnu.org 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 > > > > 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