bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19395: 25.0.50; Setting left fringe to 0 messes up window-width


From: Eli Zaretskii
Subject: bug#19395: 25.0.50; Setting left fringe to 0 messes up window-width
Date: Wed, 17 Dec 2014 17:29:43 +0200

> From: Titus von der Malsburg <malsburg@posteo.de>
> Cc: Eli Zaretskii <eliz@gnu.org>, 19395@debbugs.gnu.org
> Date: Tue, 16 Dec 2014 19:46:52 -0800
> 
> On 2014-12-16 Tue 15:12, Stefan Monnier wrote:
> >> As long as the left fringe exists, we can display on it.  But once its
> >> width is zero, it no longer exists, and so we need to reserve space to
> >> display the continuation glyph "by other means".
> >
> > That sounds wrong: if the user decides to get rid of the left-fringe,
> > she just shouldn't get any continuation glyph on the left.
> 
> Strange, setting left-fringe to 0 apparently reserves a column for the
> continuation character even when the right fringe is non-zero and no
> such column is needed.

You are thinking only about left-to-right lines of text.  But Emacs
also supports right-to-left lines of text, which use the left fringe
to display the continuation bitmap.  Those right-to-left lines need
the extra column for the continuation glyph when the left fringe is
not available.

And because Emacs supports mixed directions of text lines in the same
buffer, and because the line geometry needs to be symmetrical in both
cases, we reserve one column in left-to-right lines as well, even
though the right fringe is available (and so that column will be left
unused, i.e. empty, in left-to-right lines).

This all is so, when neither the left nor the right fringe are
available, we display mixed-direction lines like this (where "|"
denotes the window edge):

  |left-to-right continued line\|
  |/RIGHT-TO-LEFT CONTINUED LINE|

IOW, no matter what the direction, the text always begins at the
window edge, and its last (in logical order) column is used for the
continuation glyph.

When the right fringe is available, but the left one isn't, you will
see this instead (with "⤶" standing for the fringe bitmap:

  |left-to-right continued line |⤶
  |/RIGHT-TO-LEFT CONTINUED LINE|





reply via email to

[Prev in Thread] Current Thread [Next in Thread]