unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Óscar Fuentes" <ofv@wanadoo.es>
Cc: 50178@debbugs.gnu.org
Subject: bug#50178: 28.0.50; Size of echo area does not account for line-spacing
Date: Tue, 24 Aug 2021 21:13:08 +0300	[thread overview]
Message-ID: <83y28qvhhn.fsf@gnu.org> (raw)
In-Reply-To: <875yvug2ka.fsf@telefonica.net> (message from Óscar Fuentes on Tue, 24 Aug 2021 19:44:37 +0200)

> From: Óscar Fuentes <ofv@wanadoo.es>
> Cc: 50178@debbugs.gnu.org
> Date: Tue, 24 Aug 2021 19:44:37 +0200
> X-Spam-Status: No
> 
> > IOW, the value means "this many lines", but assuming that the line's
> > height is the one you get with the frame's default font.
> 
> IMAO the case where the user wants to ensure that the mini window is
> capable of displaying at least X lines is much more common than the user
> wanting a height of at least X times the default font's height.

But the former is basically impossible to provide, not in Emacs 21+
with its support for variable-size fonts and display of images and
xwidgets as part of text.  Even with just different fonts, N lines
using font of size X are not the same as N lines with size Y.

> I suspect that max-mini-window-height was introduced with the former use
> case in mind, but was not updated when line-spacing was implemented
> later.

No, max-mini-window-height is consistent with how we size all the
windows in Emacs: in units of the canonical character height and
width.  That's our usual paradigm.

> If we have no method for ensuring that the echo area is capable of
> displaying at least X lines (within some reasonable limits) then we need
> one.

It would mean a different height for each piece of text you display.
It will cause the mode line to jump up and down like a wild goat, even
if a message applies some innocent non-default faces.

It's not how Emacs is designed to work.  It basically works in pixels,
not in lines, and just converts from and to canonical character units
to make it easier for users to specify values.

> > You get the same in a window other than mini-window: if you set
> > line-spacing, chances are the last screen line will be only partially
> > visible.  Why should the mini-window be different? it's just another
> > window.
> 
> You can't navigate around on the contents of the mini-window.

??? Of course, I can.  What do you mean by "you can't"?  The
mini-window is just another window, so as long as you can make it the
selected window (e.g., when the minibuffer is active), you can
navigate there.

> If a
> package can't rely on setting max-mini-window-height for showing certain
> number of lines on the mini-window, then it must implement vertical
> scrolling, which makes things complex both on the programming side and
> on the UI side, just to make sure that the user can access the content's
> of the overflowing line(s), if any.

The recipe you show in the bug report does support scrolling: the up-
and down-arrow keys scroll the list of candidates.

> The case of ido-grid-mode is glaring: it has a defcustom for setting how
> many lines to show. When the command is invoked, it sets
> max-mini-window-height accordingly (what else could it do?) but if
> line-spacing is not nil, the bottom line(s) might not be visible.

There was no ido-grid-mode in the original report, so I guess you are
now talking about a different recipe?  Can you present it?  We could
then discuss those problems and what can be done about that.





  reply	other threads:[~2021-08-24 18:13 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-24  2:08 bug#50178: 28.0.50; Size of echo area does not account for line-spacing Óscar Fuentes
2021-08-24 11:58 ` Eli Zaretskii
2021-08-24 13:34   ` Óscar Fuentes
2021-08-24 16:20     ` Eli Zaretskii
2021-08-24 17:44       ` Óscar Fuentes
2021-08-24 18:13         ` Eli Zaretskii [this message]
2021-08-24 18:38           ` Óscar Fuentes
2021-08-24 18:49             ` Eli Zaretskii
2021-08-24 19:36               ` Óscar Fuentes
2021-08-25  2:24                 ` Eli Zaretskii
2021-08-25  7:49                   ` martin rudalics
2021-08-25  9:01                     ` Gregory Heytings
2021-08-25 10:49                     ` Óscar Fuentes
2021-08-25 12:15                       ` Eli Zaretskii
2021-08-25 14:33                       ` Gregory Heytings
2021-08-25 17:09                         ` Óscar Fuentes
2021-08-25 17:57                           ` Eli Zaretskii
2021-08-25 20:10                             ` Óscar Fuentes
2021-08-26  6:34                               ` Eli Zaretskii
2021-08-26  7:54                       ` martin rudalics
2021-08-26  8:12                         ` Eli Zaretskii

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=83y28qvhhn.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=50178@debbugs.gnu.org \
    --cc=ofv@wanadoo.es \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).