Subject: RE: bug#1488: 23.0.60; dired-pop-to-buffer: use fit-window-to-buffer

From: "Drew Adams" <[email-masked]>
Date: Thu, 4 Dec 2008 09:23:57 -0800

> From: Stephen Berman Sent: Thursday, December 04, 2008 1:44 AM
> In GNU Emacs 23.0.60.21 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
>  of 2008-12-03 on escher
> 1. emacs -Q
> 2. Eval this:
>    (define-minor-mode my-mm () "My minor mode." :global t
>      (if my-mm
>          (setq default-header-line-format
>    	       '(:eval (propertize "test" 'face '(:overline t))))
>        (setq default-header-line-format nil)))
> 3. Enable my-mm.
> 4. C-x d foo (where `foo' is some directory with at least three files,
>    e.g. emacs/lisp).
> 5. Mark three files in foo.
> 6. Type `C'
>    ==> The popped up buffer *Marked Files* shows only two of the three
>    marked files.
> 
> Likewise if the value of the 'face property in my-mm has a 
> non-nil :box attribute.  In contrast, if the value of the 'face
> property is '(:underline t) (but not '(:underline t :overline t)),
> then in step 6 all three marked files are shown, though with no room
> to spare.
> 
> I guess the basic problem here is that Emacs calculates 
> window-height in integral equally sized line numbers.

I think so; yes.

This seems related to this bug:
http://lists.gnu.org/archive/html/emacs-devel/2007-03/msg00765.html.

A face that uses :box, :overline, etc. is a pixel or two taller. And that can
cause code that deals with window size to increase by another line.