From: Gregory Heytings via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: monnier@iro.umontreal.ca, 43519@debbugs.gnu.org
Subject: bug#43519: 28.0.50; Overlay at end of minibuf hides minibuf's real content
Date: Mon, 21 Sep 2020 14:31:49 +0000 [thread overview]
Message-ID: <alpine.NEB.2.22.394.2009211621050453.9454@sdf.lonestar.org> (raw)
In-Reply-To: <83zh5jxm37.fsf@gnu.org>
>> More precisely, in this case height > max_height, so
>>
>> init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID);
>>
>> is called, followed by
>>
>> move_it_vertically_backward (&it, height - unit);
>>
>> which does nothing given that height == unit, so start is set to ZV.
>
> height == unit only when max_height = 1. But the same problem will
> happen if max_height = 2 and the stuff we want to display takes more
> than 2 screen lines, right? In those other cases, this code doesn't "do
> nothing".
>
Yes of course, I was commenting under the assumtion that (setq
max-mini-window-height 1), with which this thread started. Indeed the
code does not "do nothing" when max_height is > 1.
>
>> What I would suggest is to add a user option to set start to BEGV when
>> height > max_height, which is what is needed here. It would be reset to
>> nil in read_minibuf() before calling minibuffer-setup-hook, and would
>> be used in resize_mini_window() as follows:
>>
>> /* Compute a suitable window start. */
>> if (height > max_height && !EQ (Vstart_display_at_beginning_of_minibuffer, Qt))
>
> First, I'm not yet convinced starting at BOB is always TRT. For
> example, what if the prompt is very long and takes up more than one
> screen line?
>
I tested this. In that case (with max_height = 1) starting at BOB is not
a problem, because the display engine with override this and display the
point. The prompt will be hidden, but this is expected. It would happen,
say, when you are completing a file name in a sub-sub-sub-...-directory
with max_height = 1.
>
> Second, it is not enough to set window-start to a particular buffer
> position, we must also make sure the position of point will be visible
> with that window-start. Otherwise, redisplay will override the
> window-start we set. So, before setting this flag, the application will
> still need some code to see if BOB is pertinent, i.e. consider the
> resulting layout, which is something you wanted to avoid in the first
> place.
>
Note that this case (starting display at BOB and having point outside of
the resulting display area) is highly unlikely. When it happens, as you
write, redisplay overrides the window-start that has been set here, and
it's okay if it does.
>
> And finally, if a sufficiently generic solution that doesn't require
> external knobs can be devised, I'd prefer doing TRT automatically,
> without imposing such non-trivial settings on the application.
>
Yes, hence my second proposal, which checks height at EOB and at EOB-1.
next prev parent reply other threads:[~2020-09-21 14:31 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-19 17:54 bug#43519: 28.0.50; Overlay at end of minibuf hides minibuf's real content Stefan Monnier
2020-09-19 18:52 ` Eli Zaretskii
2020-09-19 19:42 ` Stefan Monnier
2020-09-19 20:10 ` Eli Zaretskii
2020-09-19 22:06 ` Stefan Monnier
2020-09-20 8:52 ` Eli Zaretskii
2020-09-20 21:04 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 21:31 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 6:50 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 14:17 ` Eli Zaretskii
2020-09-21 15:02 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 15:33 ` Eli Zaretskii
2020-09-21 15:44 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 16:10 ` Eli Zaretskii
2020-09-21 16:27 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 17:30 ` Eli Zaretskii
2020-09-21 18:42 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 19:37 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 19:37 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 6:57 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 6:57 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 14:11 ` Eli Zaretskii
2020-09-22 15:52 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 16:10 ` Eli Zaretskii
2020-09-22 21:01 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 17:28 ` Stefan Monnier
2020-09-21 17:47 ` Eli Zaretskii
2020-09-21 18:45 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 19:37 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 6:58 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 14:14 ` Eli Zaretskii
2020-09-21 14:04 ` Eli Zaretskii
2020-09-21 14:31 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2020-09-21 14:47 ` Eli Zaretskii
2020-09-21 14:02 ` Eli Zaretskii
2020-09-21 14:18 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 14:45 ` Eli Zaretskii
2020-09-21 15:26 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 15:39 ` Eli Zaretskii
2020-09-21 16:00 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 22:40 ` Stefan Monnier
2020-09-21 7:04 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 14:05 ` Eli Zaretskii
2020-09-21 17:25 ` Stefan Monnier
2020-09-21 17:45 ` Eli Zaretskii
2020-09-21 19:17 ` Stefan Monnier
2020-09-21 19:47 ` Eli Zaretskii
2020-09-22 5:26 ` Eli Zaretskii
2020-09-22 14:00 ` Stefan Monnier
2020-09-22 14:02 ` Eli Zaretskii
2020-09-22 15:51 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 16:06 ` Eli Zaretskii
2020-09-22 16:17 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 16:47 ` Eli Zaretskii
2020-09-22 16:49 ` Eli Zaretskii
2020-09-22 20:06 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 2:40 ` Eli Zaretskii
2020-09-23 7:15 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 14:34 ` Eli Zaretskii
2020-09-21 20:05 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-21 20:49 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-23 18:35 ` Stefan Monnier
2020-09-22 6:58 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-22 6:58 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 1:00 ` bug#43519: (no subject) Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 6:08 ` Eli Zaretskii
2020-09-20 8:27 ` bug#43519: 28.0.50; Overlay at end of minibuf hides minibuf's real content Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 9:03 ` Eli Zaretskii
2020-09-20 10:12 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-20 10:52 ` Eli Zaretskii
2020-09-20 19:50 ` Gregory Heytings via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] <<jwvft7dveii.fsf@iro.umontreal.ca>
[not found] ` <<83wo0p1twr.fsf@gnu.org>
[not found] ` <<jwvh7rta7et.fsf-monnier+emacs@gnu.org>
[not found] ` <<83r1qx1q9v.fsf@gnu.org>
[not found] ` <<jwvzh5l8med.fsf-monnier+emacs@gnu.org>
[not found] ` <<838sd425l2.fsf@gnu.org>
[not found] ` <<jwvd02g5bnp.fsf-monnier+emacs@gnu.org>
[not found] ` <<83y2l3xm15.fsf@gnu.org>
[not found] ` <<jwvwo0n2hgh.fsf-monnier+emacs@gnu.org>
[not found] ` <<83eemvxbvg.fsf@gnu.org>
[not found] ` <<jwv363b2b48.fsf@iro.umontreal.ca>
[not found] ` <<837dsmykrn.fsf@gnu.org>
[not found] ` <<E1kKapF-0007yc-Mb@fencepost.gnu.org>
[not found] ` <<831ritykni.fsf@gnu.org>
[not found] ` <<alpine.NEB.2.22.394.2009221712130453.10035@sdf.lonestar.org>
[not found] ` <<83k0wlx0cz.fsf@gnu.org>
[not found] ` <<alpine.NEB.2.22.394.2009221808130453.16638@sdf.lonestar.org>
[not found] ` <<83d02dwyfa.fsf@gnu.org>
2020-09-22 20:03 ` Drew Adams
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=alpine.NEB.2.22.394.2009211621050453.9454@sdf.lonestar.org \
--to=bug-gnu-emacs@gnu.org \
--cc=43519@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=ghe@sdf.org \
--cc=monnier@iro.umontreal.ca \
/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).