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

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

Re: fringe bugs and issues (and a couple display margin bugs)


From: Kim F. Storm
Subject: Re: fringe bugs and issues (and a couple display margin bugs)
Date: 23 Jan 2002 00:54:35 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

alveola@petrofsky.org (Alveola Petrofsky) writes:

> rms@gnu.org (Richard Stallman) writes:
> > 
> >     It should be possible to get the emacs 20 behavior of not
> >     continuing the line, and placing the cursor in the fringe when
> >     point is at the end of such a line.
> > 
> > This must be a misunderstanding, because Emacs has never done this.
> 
> By "fringe", I meant the column containing continuation marks.  Since
> at least version 18, emacs has put the cursor in that column if you
> are at the end of a line whose display width is equal to the width of
> the rest of the window.  The line is not continued.

I see what you mean.  Yes, even in emacs 20 and earlier, it does seem
as if the right-most column is "fringe-like", as it typically will
hold the continuation glyph (a backslash) - so when the line length is
exactly one character less than the window width, the cursor will be
displayed in the column which would contain the continuation glyph if
the line is longer.

Visually, it looks as if the cursor is in the "virtual right fringe"
in this case.  However, internally, the column which displays the
continuation glyph is a normal text column (rather than a special
fringe column), so the display code has no problem displaying the
cursor in that column (whereas displaying it in the fringe on X
is not that simple).

So, yes, from a user's point of view, the older emacsen also had
fringes...

> 
> Eli wrote:
> > > * Fringes on wrong side of display margins.
> > > Fringes should be inside display margins, shouldn't they?
> > 
> > I'm not sure.  Please tell why do you think so.
> 
> Because truncation marks should be adjacent to what is truncated.
> Consider:
> 
>   foo$nternationaliza$bar
> 
>   $foonternationalizabar$
> 
> Which makes more sense to you?  (Please pretend that the "$"s are
> little bitmaps, since I seem to be the only one who thinks that's
> irrelevant to choosing the desired layout :-).)
> 

Your suggestion makes a lot of sense to me.
Consider we use the display margin to show a line number, then
it is quite obvious to me that the continuation or truncation
glyphs should be shown between the line number and the text.
Compare these examples (where < is the left truncation glyph
in the fringe):

order: fringe, display margin, text

        <1   n the middle of the line
        <2   lso in the middle of the line
        <3   his line too


order: display margin, fringe, text

        1   <n the middle of the line
        2   <lso in the middle of the line
        3   <his line too
        
I definitely prefer the latter.

> > > In any case they should be consistent on tty and X frames.
> > > Currently the fringes are inside the display margins on ttys and
> > > outside on X frames.
> > 
> > That's because tty's don't support fringes at all.  If you refer to
> > the places where continuation and truncation glyphs are displayed as
> > the fringe, then the behavior is inconsistent.  But that's not how
> > Emacs refers to that.
> 
> Emacs is living in denial if she thinks that makes it better.  Forget
> I used the word "fringe".  If some frames put truncation marks on the
> inside of the display margins, and other frames put them on the
> outside, then that is inconsistent behavior.

I think we should fix this!

> I understand that the implementation is such that enhancing it to
> behave consistently will be difficult, and that you don't consider it
> worthwhile.  And, unfortunately, I'm not volunteering to do it myself.
> I'm just calling the bugs as I see 'em, for the consideration of
> anyone who might work on this.

Your thorough testing and evaluation of these features is definitely
appreciated.

-- 
Kim F. Storm  http://www.cua.dk



reply via email to

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