Subject: bug#71163: closed (Re: bug#71163: Cursor can disappear off the window if no-special-glyphs is enabled)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 25 May 2024 10:27:02 +0000

Your bug report

#71163: Cursor can disappear off the window if no-special-glyphs is enabled

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
71163: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71163
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#71163: Cursor can disappear off the window if no-special-glyphs is enabled
From: Eli Zaretskii <[email-masked]>
To: martin rudalics <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 25 May 2024 13:26:09 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Fri, 24 May 2024 11:16:36 +0200
> Cc: [email-masked]
> From: martin rudalics <[email-masked]>
> 
>  >    . it only has effect on GUI frames (basically, the code ignores this
>  >      parameter on TTY frames), although the documentation doesn't say
>  >      that, and I see no immediate reason why it wouldn't make sense on
>  >      TTY frames;
> 
> We neither had child frames nor tooltip frames on TTYs when this feature
> was introduced.  Did this change in the meantime?

No.  But the manual doesn't mention child frames at all, in
conjunction with this parameter.

>  >    . it doesn't affect the display of fringe truncation and
>  >      continuation bitmaps, although the documentation doesn't say that,
>  >      either, and it is not clear to me that those bitmaps should be
>  >      displayed in that case;
> 
> Fringes should not be shown on such frames.
> 
>  >    . not only display of cursor in full-window lines is broken, but
>  >      also the automatic horizontal scrolling (auto-hscroll-mode) in
>  >      that case: the line is not hscrolled until you type one more
>  >      character beyond those visible;
> 
> Neither of these are supported by this feature.
> 
>  >    . if you insert a TAB near the end of a screen line such that the
>  >      next tab stop is on the next screen line, the TAB is shown with
>  >      wrong number of columns, as if the next tab stop is at column zero
>  >      of the next screen line.
> 
> Interactive insertion is not supported either.
> 
>  > The last 2 points, and the report that started this bug discussion,
>  > are because the logic of line-continuation and truncation is basically
>  > broken in this case: the layout code thinks the continuation and
>  > truncation glyphs are inserted when needed, whereas they are not.
>  > That's because the layout code was not adapted to this frame
>  > parameter, only the geometry of the screen line was adjusted.
>  >
>  > Fixing this will take a while.  But first we need to understand and
>  > agree on the scope of support for this frame parameter, and what Emacs
>  > should do in each supported case.
> 
> Turning off special glyphs is a pure presentation feature.  The variable
> 'show-paren--context-child-frame-parameters' tells best what should be
> turned off too on any frames where it is used - such frames should never
> be switched to, should not show a cursor, decorations and the like.

So basically you are saying that this parameter is an internal feature
meant to allow better implementation of certain types of frames on GUI
displays?

> Feel free to add an appropriate explanation to the manual.

Thanks, now done, and closing the bug.

Subject: Cursor can disappear off the window if no-special-glyphs is enabled
From: Emre Yolcu <[email-masked]>
To: [email-masked]
Date: Fri, 24 May 2024 00:42:29 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

If the layout parameter no-special-glyphs is enabled and a line is 
exactly as wide as a window, then the cursor placed at the end of the 
line disappears off the window. Steps to confirm after "emacs -Q":

1. Evaluate the following:

(set-frame-parameter nil 'no-special-glyphs nil)
   (fringe-mode 0)
   (scroll-bar-mode -1)

2. Insert some line that is exactly as wide as the window, leaving the 
cursor at the end of the line.

After those steps, the cursor is not visible. I'm not sure if this is 
the intended behavior. I would expect the cursor to appear at the 
beginning of the next screen line instead. If no-special-glyphs is not 
enabled, then, as expected, the final character of the first screen line 
is displayed as the continuation indicator "\", and the actual final 
character of the line appears on the next screen line, with the cursor 
after it.

I have confirmed this behavior with Emacs 29.3 on macOS and Windows.