unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Gregory Heytings <ghe@sdf.org>
Cc: Eli Zaretskii <eliz@gnu.org>,
	spacibba@aol.com, andreyk.mad@gmail.com, emacs-devel@gnu.org
Subject: Re: [PATCH] Support "\n" in icomplete-separator
Date: Tue, 17 Nov 2020 09:05:31 -0500	[thread overview]
Message-ID: <jwvd00cf5ks.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <alpine.NEB.2.22.394.2011171056200453.13741@sdf.lonestar.org> (Gregory Heytings's message of "Tue, 17 Nov 2020 11:51:05 +0000")

> I was not thinking about that feature, which indeed is much more ambitious,
> but about the `minibuffer-scroll-generic' feature you proposed, which would
> have solved the issue at hand, and for which you wrote a (partial) patch.

Ah you mean the patch where I basically remove the ad-hoc scrolling code
from resize_mini_window?  Eli doesn't like it, so it would have to be
activated by a config variable (and deactivated by default).

I'm using it in my local Emacs (see patch below) and have been tempted
to add it to master (under the control of a boolean config variable),
but its effect is so minor that I'm not sure it's worth the trouble.
If you think you can make use of it, then I can clean it up and push it.

> Now I think indeed that just doing what Eli wants is the best way to
> move forward.

Sounds about right.


        Stefan


diff --git a/src/xdisp.c b/src/xdisp.c
index 021c99dec4..d953120e28 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -11814,10 +11814,10 @@ resize_mini_window_1 (void *a1, Lisp_Object exactly)
    means size the window exactly to the size needed.  Otherwise, it's
    only enlarged until W's buffer is empty.
 
-   Set W->start to the right place to begin display.  If the whole
-   contents fit, start at the beginning.  Otherwise, start so as
-   to make the end of the contents appear.  This is particularly
-   important for y-or-n-p, but seems desirable generally.
+   If the whole contents fit, set W->start at the beginning.
+   Otherwise, let redisplay do its thing to make sure point is displayed,
+   so we can control which part is more important by placing point
+   accordingly.
 
    Value is true if the window height has been changed.  */
 
@@ -11839,9 +11839,10 @@ resize_mini_window (struct window *w, bool exact_p)
     return false;
 
   /* By default, start display at the beginning.  */
-  set_marker_both (w->start, w->contents,
-		   BUF_BEGV (XBUFFER (w->contents)),
-		   BUF_BEGV_BYTE (XBUFFER (w->contents)));
+  /* bug#43519: Let the redisplay choose the window start!
+   * set_marker_both (w->start, w->contents,
+   *       	   BUF_BEGV (XBUFFER (w->contents)),
+   *       	   BUF_BEGV_BYTE (XBUFFER (w->contents))); */
 
   /* Nil means don't try to resize.  */
   if ((NILP (Vresize_mini_windows)
@@ -11900,27 +11901,18 @@ resize_mini_window (struct window *w, bool exact_p)
       if (height > max_height)
 	{
 	  height = (max_height / unit) * unit;
-	  init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID);
-	  move_it_vertically_backward (&it, height - unit);
-	  /* The following move is usually a no-op when the stuff
-	     displayed in the mini-window comes entirely from buffer
-	     text, but it is needed when some of it comes from overlay
-	     strings, especially when there's an after-string at ZV.
-	     This happens with some completion packages, like
-	     icomplete, ido-vertical, etc.  With those packages, if we
-	     don't force w->start to be at the beginning of a screen
-	     line, important parts of the stuff in the mini-window,
-	     such as user prompt, will be hidden from view.  */
-	  move_it_by_lines (&it, 0);
-	  start = it.current.pos;
-	  /* Prevent redisplay_window from recentering, and thus from
-	     overriding the window-start point we computed here.  */
-	  w->start_at_line_beg = false;
+	  /* bug#43519: Let the redisplay choose the window start!
+           *
+           * init_iterator (&it, w, ZV, ZV_BYTE, NULL, DEFAULT_FACE_ID);
+	   * move_it_vertically_backward (&it, height - unit);
+	   * start = it.current.pos; */
 	}
       else
-	SET_TEXT_POS (start, BEGV, BEGV_BYTE);
+	{
+	  SET_TEXT_POS (start, BEGV, BEGV_BYTE);
 
-      SET_MARKER_FROM_TEXT_POS (w->start, start);
+          SET_MARKER_FROM_TEXT_POS (w->start, start);
+        }
 
       if (EQ (Vresize_mini_windows, Qgrow_only))
 	{




  reply	other threads:[~2020-11-17 14:05 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-05 23:10 [PATCH] Support "\n" in icomplete-separator Andrii Kolomoiets
2020-11-05 23:29 ` Stefan Monnier
2020-11-06  0:04   ` Ergus
2020-11-06  2:44     ` Stefan Monnier
2020-11-06  8:42     ` Gregory Heytings via Emacs development discussions.
2020-11-06 10:26   ` Andrii Kolomoiets
2020-11-05 23:57 ` Ergus
2020-11-06  8:43   ` Gregory Heytings via Emacs development discussions.
2020-11-06 12:36   ` Andrii Kolomoiets
2020-11-06 15:15     ` Ergus
2020-11-08 20:14       ` Andrii Kolomoiets
2020-11-08 20:30         ` Gregory Heytings via Emacs development discussions.
2020-11-08 20:36           ` Andrii Kolomoiets
2020-11-09  3:28         ` Eli Zaretskii
2020-11-09 21:04           ` Andrii Kolomoiets
2020-11-10 15:13             ` Eli Zaretskii
2020-11-10 17:18               ` Andrii Kolomoiets
2020-11-10 18:18                 ` Gregory Heytings via Emacs development discussions.
2020-11-11  9:41                   ` Andrii Kolomoiets
2020-11-10 18:23                 ` Eli Zaretskii
2020-11-10 19:17                   ` Gregory Heytings via Emacs development discussions.
2020-11-10 19:27                     ` Eli Zaretskii
2020-11-10 20:00                       ` Gregory Heytings via Emacs development discussions.
2020-11-10 21:09                   ` Andrii Kolomoiets
2020-11-11  8:27                     ` martin rudalics
2020-11-11  9:07                       ` Gregory Heytings via Emacs development discussions.
2020-11-11 15:57                         ` Jean Louis
2020-11-11  9:38                       ` Andrii Kolomoiets
2020-11-11 10:01                         ` martin rudalics
2020-11-11 10:21                           ` Gregory Heytings via Emacs development discussions.
2020-11-11 10:53                             ` martin rudalics
2020-11-11 11:22                               ` Gregory Heytings via Emacs development discussions.
2020-11-11 15:49                                 ` martin rudalics
2020-11-11 15:57                                   ` Eli Zaretskii
2020-11-11 16:16                                     ` Jean Louis
2020-11-11 17:06                                     ` martin rudalics
2020-11-11 17:28                                       ` Gregory Heytings via Emacs development discussions.
2020-11-11 16:05                                   ` Gregory Heytings via Emacs development discussions.
2020-11-11 17:06                                     ` martin rudalics
2020-11-11 17:26                                     ` Stefan Monnier
2020-11-11 17:37                                       ` Gregory Heytings via Emacs development discussions.
2020-11-11 15:32                             ` Jean Louis
2020-11-11 15:26                           ` Jean Louis
2020-11-11 16:06                           ` Eli Zaretskii
2020-11-11 17:12                             ` Gregory Heytings via Emacs development discussions.
2020-11-11 17:19                               ` Alfred M. Szmidt
2020-11-11 17:44                                 ` Gregory Heytings via Emacs development discussions.
2020-11-11 17:50                                   ` Alfred M. Szmidt
2020-11-11 18:14                                     ` Eli Zaretskii
2020-11-11 18:09                               ` Eli Zaretskii
2020-11-11 18:39                                 ` Gregory Heytings via Emacs development discussions.
2020-11-11 20:21                                   ` Eli Zaretskii
2020-11-11 20:37                                     ` Gregory Heytings via Emacs development discussions.
2020-11-11 21:55                                       ` Ergus
2020-11-11 22:26                                         ` Jean Louis
2020-11-11 22:59                                         ` Stefan Monnier
2020-11-12  3:28                                       ` Eli Zaretskii
2020-11-12  8:50                                         ` Gregory Heytings via Emacs development discussions.
2020-11-12  9:13                                           ` on helm substantial differences - " Jean Louis
2020-11-12  9:20                                             ` Gregory Heytings via Emacs development discussions.
2020-11-12 10:25                                               ` Jean Louis
2020-11-12 10:54                                                 ` Gregory Heytings via Emacs development discussions.
2020-11-12 11:33                                                   ` Jean Louis
2020-11-12 14:40                                                     ` Gregory Heytings via Emacs development discussions.
2020-11-12 17:46                                                       ` Jean Louis
2020-11-12 14:41                                             ` Eli Zaretskii
2020-11-12 17:49                                               ` Jean Louis
2020-11-12 17:58                                                 ` Eli Zaretskii
2020-11-12 14:36                                           ` Eli Zaretskii
2020-11-12 15:05                                             ` Gregory Heytings via Emacs development discussions.
2020-11-12 15:36                                               ` Eli Zaretskii
2020-11-12 16:10                                                 ` Gregory Heytings via Emacs development discussions.
2020-11-12 17:50                                                   ` Eli Zaretskii
2020-11-13 12:40                                                     ` Gregory Heytings via Emacs development discussions.
2020-11-13 12:59                                                       ` Eli Zaretskii
2020-11-13 13:36                                                         ` Gregory Heytings via Emacs development discussions.
2020-11-13 13:52                                                           ` Eli Zaretskii
2020-11-13 15:09                                                             ` Stephen Berman
2020-11-13 16:05                                                               ` Eli Zaretskii
2020-11-13 17:31                                                                 ` Stephen Berman
2020-11-16 10:24                                                             ` Gregory Heytings via Emacs development discussions.
2020-11-16 17:44                                                               ` Eli Zaretskii
2020-11-17 11:51                                                                 ` Gregory Heytings via Emacs development discussions.
2020-11-12  7:58                                     ` martin rudalics
2020-11-12  8:52                                       ` Gregory Heytings via Emacs development discussions.
2020-11-12 14:37                                         ` Eli Zaretskii
2020-11-12 12:39                                       ` Dmitry Gutov
2020-11-12 19:31                                         ` Howard Melman
2020-11-12 20:02                                           ` ivy-posframe review - " Jean Louis
2020-11-11 14:09                         ` Jean Louis
2020-11-11 15:51                           ` Eli Zaretskii
2020-11-11 16:05                             ` Jean Louis
2020-11-11 18:52                       ` Drew Adams
2020-11-11 19:10                         ` martin rudalics
2020-11-11 19:49                           ` Drew Adams
2020-11-12  7:58                             ` martin rudalics
2020-11-11 19:51                           ` Drew Adams
2020-11-11 16:30                     ` Eli Zaretskii
2020-11-12 22:51                       ` Andrii Kolomoiets
2020-11-13  8:39                         ` Eli Zaretskii
2020-11-13 12:56                           ` Gregory Heytings via Emacs development discussions.
2020-11-13 13:02                             ` Eli Zaretskii
2020-11-13 13:44                               ` Gregory Heytings via Emacs development discussions.
2020-11-13 13:55                                 ` Eli Zaretskii
2020-11-16 10:25                                   ` Gregory Heytings via Emacs development discussions.
2020-11-16 17:40                                     ` Eli Zaretskii
2020-11-16 17:41                                     ` Stefan Monnier
2020-11-16 18:24                                       ` Eli Zaretskii
2020-11-17 11:51                                       ` Gregory Heytings via Emacs development discussions.
2020-11-17 14:05                                         ` Stefan Monnier [this message]
2020-11-13 19:27                             ` Andrii Kolomoiets
2020-11-17  8:59                               ` Gregory Heytings via Emacs development discussions.
2020-11-13 20:18                           ` Andrii Kolomoiets
2020-11-14  6:17                             ` Ergus
2020-11-14 20:36                               ` Andrii Kolomoiets
2020-11-15  2:39                                 ` Ergus
2020-11-15 19:32                                   ` Andrii Kolomoiets
2020-11-10 20:01                 ` Stefan Monnier
2020-11-06  5:52 ` Jean Louis
2020-11-06 12:40   ` Andrii Kolomoiets
2020-11-06 12:59     ` Jean Louis
2020-11-08 20:28       ` Andrii Kolomoiets
2020-11-08 20:50         ` Jean Louis
  -- strict thread matches above, loose matches on Subject: below --
2020-11-06 16:30 Drew Adams
     [not found] <<m2a6vv8ko3.fsf@gmail.com>
     [not found] ` <<20201105235735.oxouuek66ehu5o45@Ergus>
     [not found]   ` <<m2y2je7jcx.fsf@gmail.com>
     [not found]     ` <<20201106151541.dpgep7borlja25su@Ergus>
     [not found]       ` <<m2d00n7gj4.fsf@gmail.com>
     [not found]         ` <<837dqv5huk.fsf@gnu.org>
     [not found]           ` <<m24klys0n2.fsf@gmail.com>
     [not found]             ` <<83mtzp2qj0.fsf@gnu.org>
     [not found]               ` <<m2imad6sh1.fsf@gmail.com>
     [not found]                 ` <<83r1p11369.fsf@gnu.org>
     [not found]                   ` <<m2a6vo7wcw.fsf@gmail.com>
     [not found]                     ` <<ca240036-8493-968d-2204-620f430334b9@gmx.at>
     [not found]                       ` <<m2sg9g5j2p.fsf@gmail.com>
     [not found]                         ` <<fe70158f-d55a-010a-74ba-2f81d1bb7663@gmx.at>
     [not found]                           ` <<837dqr27zs.fsf@gnu.org>
2020-11-11 19:03                             ` Drew Adams
     [not found]                             ` <<alpine.NEB.2.22.394.2011111803220453.17489@sdf.lonestar.org>
     [not found]                               ` <<83361f22ah.fsf@gnu.org>
     [not found]                                 ` <<alpine.NEB.2.22.394.2011111926450453.27530@sdf.lonestar.org>
     [not found]                                   ` <<83sg9fzlto.fsf@gnu.org>
     [not found]                                     ` <<alpine.NEB.2.22.394.2011112128400453.4149@sdf.lonestar.org>
     [not found]                                       ` <<83r1ozz22j.fsf@gnu.org>
     [not found]                                         ` <<alpine.NEB.2.22.394.2011120932160453.28737@sdf.lonestar.org>
     [not found]                                           ` <<83d00izloj.fsf@gnu.org>
     [not found]                                             ` <<alpine.NEB.2.22.394.2011121544550453.26984@sdf.lonestar.org>
     [not found]                                               ` <<83361ezix2.fsf@gnu.org>
2020-11-12 17:42                                                 ` 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=jwvd00cf5ks.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=andreyk.mad@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=ghe@sdf.org \
    --cc=spacibba@aol.com \
    /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).