Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters)

From: Anders Lindgren <[email-masked]>
Date: Mon, 24 Feb 2014 11:12:31 +0100

On Mon, Feb 24, 2014 at 8:41 AM, martin rudalics <[email-masked]> wrote:

> > If possible, I would like to see the pixel width of fringes + scroll bar
> to
> > be a multiple of the width of the font used in the frame, since it is
> much
> > more convenient for elisp packages that make layout decisions. (As I
> > mentioned above, now they are 5 characters and one pixel. In 24.3 they
> were
> > exactly six characters wide.)
>
> The pixel widths of fringes and scrollbars are customizable on a per
> frame/window basis so you should be able to set them up on you system
> as you need.  Does that fail?

Well, it's much more work to handle things on the pixel level than working
with characters as the base unit.

For example, I'm currently writing a package to set up multiple
side-by-size windows. When figuring out a suitable frame width, I used to
multiply the number of side-by-side windows with the sum of the column
width and the width (in characters) of the fringe and scroll bars, to get
the number of characters to set the width to. Now, I would have to work on
the pixel level to do this properly -- this is much more error prone and I
can't use the code on old Emacs versions.

It doesn't help that functions doesn't seem to be designed to work
together, for example I would expect:
    (set-frame-size (selected-frame) (frame-pixel-width)
(frame-pixel-height) t)'
to be a no-op, but instead the frame increases its size both on the width
and on the height.

Another argument of not having a "odd" width is that when splitting windows
side-by-side, you will end up with an unused gap to the right of almost a
full character. Steps to repeat:

    emacs -Q
    (setq truncate-partial-width-windows nil) C-j
    C-x 3

        Here, the right window have an unused space between the rightmost
character and the fringe, the space is almost a character wide. It's not
possible to resize the frame manually to correct this, as the frame can
only be resized full characters (as it should be). (When
`truncate-partial-width-windows' is t, the gap is used to display a partial
character.)

To conclude, I would be much happier if the sum of the fringes and the
scroll bar would be an even five characters rather than five characters and
one pixel, as it is today.

The question is if this is due to some display bug (maybe OS X specific) or
if this is the way it is supposed to work now?

    -- Anders