all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Emre Yolcu <mail@emreyolcu.com>, martin rudalics <rudalics@gmx.at>
Cc: 71163@debbugs.gnu.org
Subject: bug#71163: Cursor can disappear off the window if no-special-glyphs is enabled
Date: Fri, 24 May 2024 10:20:19 +0300	[thread overview]
Message-ID: <86v8333ccs.fsf@gnu.org> (raw)
In-Reply-To: <d7b40392-6978-4919-a9a4-24011e34ee5e@emreyolcu.com> (message from Emre Yolcu on Fri, 24 May 2024 00:42:29 -0400)

> Date: Fri, 24 May 2024 00:42:29 -0400
> From: Emre Yolcu <mail@emreyolcu.com>
> 
> 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)

You must have meant

  (set-frame-parameter nil 'no-special-glyphs t)

Because nil is the default value of this frame parameter.

>  (fringe-mode 0)
>  (scroll-bar-mode -1)

The last part of disabling scroll-bars is not necessary, AFAICT.

> 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 don't really understand how this was intended to behave, so I added
Martin who introduced this feature, in the hope that he could provide
the explanation of the intent.  This was added as part of support for
child frames, so I presume it has something to do with child frames,
but I don't really understand what exactly and why child frames would
need that.

AFAICT, this is currently broken in several ways:

  . 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;
  . 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;
  . 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;
  . 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.

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.

Thanks.





  parent reply	other threads:[~2024-05-24  7:20 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-24  4:42 bug#71163: Cursor can disappear off the window if no-special-glyphs is enabled Emre Yolcu
2024-05-24  6:46 ` Emre Yolcu
2024-05-24  7:20 ` Eli Zaretskii [this message]
2024-05-24  9:16   ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-25 10:26     ` Eli Zaretskii
2024-05-26  8:54       ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86v8333ccs.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=71163@debbugs.gnu.org \
    --cc=mail@emreyolcu.com \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.