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

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

bug#29233: Enable fringe cursor when *almost* exact_window_width_line_p


From: Eli Zaretskii
Subject: bug#29233: Enable fringe cursor when *almost* exact_window_width_line_p
Date: Sun, 12 Nov 2017 06:10:58 +0200

> Date:  Sat, 11 Nov 2017 14:33:22 -0800
> From:  Keith David Bershatsky <esq@lawlist.com>
> Cc:  Alan Third <alan@idiocy.org>,Anders Lindgren <andlind@gmail.com>,David 
> Reitter <david.reitter@gmail.com>,Martin Rudalics 
> <rudalics@gmx.at>,29233@debbugs.gnu.org
> 
> The crux of the issue raised with #29233 is whether users might wish to see a 
> fringe bitmap instead of a partial width cursor when point is slightly less 
> than the exact window width.  Whereas the patches relating to #16856 reduce 
> the width of the cursor so that it does not overflow into the fringe 
> (creating unwanted artifacts), there was nothing done to permit a fringe 
> bitmap to be placed there instead.
> 
> I had not given any consideration to the possibility that a partial width 
> cursor is "a feature".  I.e., I erroneously assumed that a partial width 
> cursor was merely an attempt to avoid unwanted artifacts being drawn on the 
> fringe.
> 
> I personally like to see fringe bitmaps when points is slightly less than the 
> exact widow width; however, I am uncertain how to reconcile that proposed 
> feature with the desire by others to see a partial width cursor without a 
> fringe bitmap.

The part of the display code that deals with the cursor on the fringes
is insanely complicated.  It's part of the code which deals with the
following features:

 . "normal" display of the cursor at the end of a line
 . showing the cursor on the right (or left, for RTL lines) fringe
   when a line fits in the window exactly
 . showing the continuation/truncation bitmaps on the fringes
 . showing the continuation/truncation glyphs in the text area when
   the fringes are disabled
 . displaying a TAB or any other stretch of white space that extends
   beyond the window edge
 . all of the above, when lines are wrapped (word-wrap is non-nil)
 . most of the above on TTY frames

(I could be forgetting some use cases.)  Each one of these needs
special considerations in the move_it_* functions, because those
functions need to support all of those correctly.

Adding any more complexity to what we already have on our hands is IMO
only justified for some significant features.  The proposed one seems
to be only of aesthetic value, so I don't think we should complicate
the display code more than it already is on this behalf.

> If the consensus is that a user who has a window-width that is not an 
> integral multiple of frame's character width must give up the ability to see 
> a fringe bitmap, then that resolves #29233.

It's not just the window being the integral multiple, it's _any_
situation where some space is available between the right edge of the
last glyph and the window edge.  Don't forget that Emacs supports
variable-pitch fonts and can display glyphs from different fonts on
the same line, which will almost always leave some fractional space at
the end of the line.

I don't know if this is the consensus, but I just don't think we
should go there.





reply via email to

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