From: charles@aurox.ch (Charles A. Roelli)
To: Drew Adams <drew.adams@oracle.com>
Cc: 26513@debbugs.gnu.org
Subject: bug#26513: 25.2; pop-up-frames and *Completions* buffer
Date: Sat, 15 Apr 2017 22:05:39 +0200 [thread overview]
Message-ID: <m2efwttp0s.fsf@aurox.ch> (raw)
In-Reply-To: <7e856815-6dff-4152-b144-c45a4bedb0b4@default> (Drew Adams's message of "Sat, 15 Apr 2017 09:49:28 -0700 (PDT)")
On Sat, Apr 15 2017 at 09:49:28 am, Drew Adams wrote:
> FWIW, I reported such problems a couple of decades ago.
> Unfortunately (for me at least), there is not enough
> use or interest in using separate frames by default,
> including for *Completions*, so this kind of thing has
> not gotten the love it would really need for progress.
Maybe it's time for some change? :-) Especially in light of the
boatload of new frame stuff that was added recently (thanks to Martin
for that).
> I've tried to do what I can in my own environment to
> handle this, especially in the context of a standalone
> minibuffer frame. And Martin has been helpful wrt
> problems that resulted from changes in the Emacs code
> over the years.
>
> Here's what I do for *Completions*, FWIW:
>
> I add an entry to `special-display-buffer-names* that
> has a function, `1on1-display-*Completions*-frame',
> which takes care of displaying the *Completions* frame.
>
> The main thing that function does is redirect the
> focus of the *Completions* frame to the standalone
> minibuffer frame (if the minibuffer is active) or
> (if not) to the buffer that was current before
> *Completions* display was requested:
>
> (let ((redirect
> (if (active-minibuffer-window)
> 1on1-minibuffer-frame
> (and completion-reference-buffer
> (get-buffer-window
> completion-reference-buffer 'visible)
> (not (eq (get-buffer "*Completions*")
> completion-reference-buffer))
> (window-frame
> (get-buffer-window
> completion-reference-buffer t))))))
> (when redirect
> (redirect-frame-focus (selected-frame)
> redirect)))
1) Does this still work without a standalone minibuffer frame? I'm
interested in using one, but I'd rather fix the *Completions* frame
problem first before adding on a minibuffer-only frame to my setup.
2) I don't understand why vanilla Emacs puts the *Completions* buffer in
focus when it's popped into a new frame -- but I know that this is
the reason you have to redirect the focus from *Completions* to the
minibuffer or the completion-reference-buffer frame. On Mac OS,
though, redirecting frame focus results in a lot of flicker and lag
on each keypress -- sometimes up to a second or two long. (Will save
the rest for another bug report someday.) Wouldn't a simpler
alternative to frame redirection be to just put point back in the
minibuffer or completion-reference-buffer?
> I've said it before, but I think it is relevant:
> Back in the early 1990s the Emacs implementation
> named `Epoch' worked very well with a standalone
> minibuffer frame, out of the box.
>
> All I've done is try to work around Emacs's poor
> (non-existent) support for this kind of use case -
> essentially trying to emulate Epoch behavior.
Standalone minibuffer frames are meant to work correctly almost out of
the box, though, right? (IIRC you just have to fiddle with
`initial-frame-alist' to remove the minibuffer from the first
frame). It's only when *Completions* is displayed in a separate frame
that there are issues.
> But frames remain the poor cousin to windows in
> Emacs. Part of that is likely due to the fact that
> Emacs cannot completely control the behavior of
> frames for all window managers. Window mgrs are
> different, and they have ultimate control.
Yes, this seems like it's the main issue here. But still, sane frame
behavior doesn't seem too far off.
next prev parent reply other threads:[~2017-04-15 20:05 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-15 9:17 bug#26513: 25.2; pop-up-frames and *Completions* buffer Charles A. Roelli
2017-04-15 14:50 ` martin rudalics
2017-04-15 19:14 ` Charles A. Roelli
2017-04-15 19:40 ` martin rudalics
2017-04-15 20:28 ` Charles A. Roelli
2017-04-16 7:16 ` martin rudalics
2017-04-17 7:44 ` Charles A. Roelli
2017-04-15 16:49 ` Drew Adams
2017-04-15 20:05 ` Charles A. Roelli [this message]
2017-04-16 15:54 ` Drew Adams
2017-04-18 17:27 ` martin rudalics
2017-04-18 20:34 ` Charles A. Roelli
2017-04-19 7:26 ` martin rudalics
2022-02-15 10:37 ` Lars Ingebrigtsen
2022-02-17 10:01 ` martin rudalics
2022-02-17 13:13 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-17 16:02 ` martin rudalics
2022-02-17 19:21 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-02-19 9:40 ` martin rudalics
2022-02-19 12:23 ` Eli Zaretskii
2022-02-20 0:25 ` bug#26513: [External] : " Drew Adams
2022-02-20 0:28 ` Drew Adams
2022-02-20 9:17 ` martin rudalics
2022-02-20 21:16 ` Drew Adams
2022-02-21 16:25 ` Drew Adams
2022-02-17 16:40 ` 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=m2efwttp0s.fsf@aurox.ch \
--to=charles@aurox.ch \
--cc=26513@debbugs.gnu.org \
--cc=drew.adams@oracle.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).