From: martin rudalics <rudalics@gmx.at>
To: Drew Adams <drew.adams@oracle.com>
Cc: 11939@debbugs.gnu.org
Subject: bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenit calls `list-processes'
Date: Mon, 06 Aug 2012 17:29:35 +0200 [thread overview]
Message-ID: <501FE2DF.6030906@gmx.at> (raw)
In-Reply-To: <75CAF22BF973452CB85EFC802F2C171A@us.oracle.com>
>> > Something like this:
>> > (with-unfocused-buffer-displayed BUFFER &body BODY)
>> >
>> > where BUFFER is displayed for information only, and where
>> > BODY would include the call(s) that read from the minibuffer.
>> >
>> > The current buffer would remain what it was beforehand,
>> > and _if_ BUFFER gets displayed in its own frame and _if_
>> > there is a standalone minibuffer frame, _then_ the focus
>> > for BUFFER's frame gets automatically redirected to the
>> > minibuffer frame.
>>
>> In my experience, this requirement is met if the construct requests
>> input with BUFFER's window temporarily selected and BUFFER
>> temporarily current. Or am I missing something?
>
> Sorry, I don't know what that means. Perhaps give an example of what you mean
> by temporarily selected and current?
Temporarily selected means selected via `with-selected-window' and
temporarily current means `with-current-buffer'.
>> > handling needed - the construct can essentially be a no-op
>> > in that case (AFAICT).
>> >
>> > How something like this would be implemented I'm not sure.
>> > When the redirection would need to take place, to DTRT,
>> > I'm not sure. Perhaps it would need to be done more than once.
>> >
>> > But an important further requirement is that nothing
>> > should prevent Emacs code in BODY or called from within
>> > BODY from switching the input focus to BUFFER's frame.
>>
>> I don't understand what BODY should contain. Would this macro be
>> responsible for displaying BUFFER?
>
> No, not as I was conceiving it. I suppose that would be a possibility, but I
> expect it is better to keep buffer display out of it. That's why I said things
> like "_if_ BUFFER gets displayed in its own frame".
>
> What I had in mind was that the macro would be responsible only for making sure
> that minibuffer input gets (re-)directed to the minibuffer frame. And that goes
> for any code in BODY, including code that might pop up BUFFER.
>
> IOW, display of BUFFER would come (if it came) from BODY.
>
> But again, I'm just thinking out loud. And it's probable that you see things
> that I do not.
No. Just that I don't have the slightest idea how to write a macro that
modifies the behavior of a `yes-or-no-p' dialog it calls. read_minibuf
and the code for handling keyboard events do the redirecting.
>> > Likewise, nothing should prevent the user from explicitly
>> > switching the focus to BUFFER's frame.
>>
>> This is part of the `yes-or-no-p' dialog, nothing within the scope
>> of the construct you propose.
>
> Can you elaborate? I don't follow.
IIUC you want to modify the behavior of `yes-or-no-p' to redirect frame
focus in your sense.
> No. Again, during reading from the minibuffer it is quite possible for a user
> to interact with other buffers and their frames. I gave the example of
> *Completions*. The user can hit a key or use the mouse to change the input
> focus temporarily to another frame - any frame.
>
> When the user does that s?he is executing code within BODY. It is code that
> reads from the minibuffer, but also code that implements any commands bound to
> keys or mouse actions that the user uses during that minibuffer dialog. That's
> all I meant.
I'm afraid this gets too complicated for me. You have to find someone
who understands such scenarios better than me.
>> > I do not expect that the problematic use case we've been
>> > discussing can be detected and dealt with correctly in an
>> > automatic way. If the programmer intention
>>
>> Who is the programmer here?
>
> The person who writes the code that reads from the minibuffer, code that might
> or might not be wrapped in the new macro, i.e., that might or might not want to
> stipulate that BUFFER is not to receive the input focus.
The person who writes that code expects `yes-or-no-p' DTRT.
>> I refer to the case where a minibuffer-equipped frame is popped up.
>
> I'd rather you didn't. Let's not bring in new things.
Users with non-nil `pop-up-frames' who don't use minibuffer-only frames
do get a minibuffer-equipped frame popped up. You can ignore them, I
can't. And a user who excludes BUFFER from the list of specially
displayed buffers does a perfectly valid thing and can expect Emacs to
handle it as it currently does.
> I don't know. The only problems I am aware of for `w-t-b-w.el' are these:
>
> 1. Loss of special-displayness (a separate problem, but important if we're
> talking about `w-t-b-w.el' as it stands now).
>
> 2. The fact that it limits itself to display of temporary buffers, whereas the
> actual problem has to do with the temporary display of buffers.
Because I can safely kill a temporary buffer and remove its frame when
I'm done with the dialog.
> And as far as you know, is the fact that the minibuffer frame is still used (as
> it should be) due only to the fact that `yes-or-no-p' is used, or can I expect
> that the minibuffer frame will be used in general?
Due to the fact that `yes-or-no-p' is called in a special way - with the
new window selected.
>> >> `with-temp-buffer-window' avoids that by asking the
>> >> `yes-or-no-p' question in the new frame.
>
> Dunno why I (or was it you?) said that. I see the question in the minibuffer
> frame, not the new frame. Which is TRT.
To "see the question in the minibuffer frame" I ask it in the new frame.
> Yes, it is more restrictive than the actual problem encountered. As I said, it
> might suffice in practice, but there is nothing in the problem description that
> requires that the buffer itself be temporary.
I have to kill the buffer to remove the frame. And I have to remove the
frame because you complained that `save-window-excursion' cannot remove
a popped up frame. And I can't kill a non-temporary buffer.
>> The invoking code does not care. It expects `display-buffer' and
>> `yes-or-no-p' to take care of this.
>
> In the general case it is not `yes-or-no-p'.
It can do anything that reads from the minibuffer.
> The informational frame? I'd vote for `delete-frame', at least for my own use.
> We might want to provide ways for the caller and/or the user to control both
> what to do with the frame/window and what to do with the buffer. But maybe
> `frame-auto-hide-function' would make sense here?
If we use `frame-auto-hide-function', the caller does not have to kill
the buffer and there's no need to make this construct work for temporary
buffers only.
> Anyway, let's talk about this later.
It's your choice.
martin
next prev parent reply other threads:[~2012-08-06 15:29 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-13 18:00 bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when it calls `list-processes' Drew Adams
2012-07-14 13:27 ` martin rudalics
2012-07-14 14:51 ` Drew Adams
2012-07-14 16:19 ` martin rudalics
2012-07-14 17:12 ` Drew Adams
2012-07-15 12:59 ` martin rudalics
2012-07-15 15:06 ` Drew Adams
2012-07-15 16:08 ` martin rudalics
2012-07-15 16:43 ` Drew Adams
2012-07-16 9:12 ` martin rudalics
2012-07-16 14:23 ` Drew Adams
2012-07-16 16:07 ` martin rudalics
2012-07-16 16:36 ` Drew Adams
2012-07-16 17:04 ` martin rudalics
2012-07-16 18:22 ` Drew Adams
2012-07-16 23:26 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when itcalls `list-processes' Drew Adams
2012-07-17 9:50 ` martin rudalics
2012-07-17 15:21 ` Drew Adams
2012-07-18 16:16 ` martin rudalics
2012-07-19 3:56 ` Drew Adams
2012-07-19 10:42 ` martin rudalics
2012-07-19 17:45 ` Drew Adams
2012-07-21 11:02 ` martin rudalics
2012-07-21 18:13 ` Drew Adams
2012-07-22 8:49 ` martin rudalics
[not found] ` <ED063FDC2B7C4B2A9CB2BDADAE2F00A2@us.orac! ! le.com>
2012-07-22 16:55 ` Drew Adams
2012-07-23 9:34 ` martin rudalics
2012-07-23 16:12 ` Drew Adams
2012-07-17 9:50 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when it calls `list-processes' martin rudalics
2012-07-17 14:22 ` Drew Adams
2012-07-18 16:16 ` martin rudalics
2012-07-18 17:23 ` Drew Adams
2012-07-19 10:41 ` martin rudalics
2012-07-19 17:43 ` Drew Adams
2012-07-21 11:01 ` martin rudalics
2012-07-21 18:13 ` Drew Adams
2012-07-19 3:54 ` Drew Adams
2012-07-19 10:42 ` martin rudalics
2012-07-19 17:43 ` Drew Adams
2012-07-21 11:01 ` martin rudalics
2012-07-21 18:13 ` Drew Adams
2012-07-22 8:48 ` martin rudalics
2012-07-22 16:46 ` Drew Adams
2012-07-22 17:06 ` Eli Zaretskii
[not found] ` <83! 4n@[87.69.210.75]>
[not found] ` <8C! 6D5530BE0@[87.69.210.75! ]>
2012-07-22 19:42 ` Drew Adams
2012-07-22 20:49 ` Eli Zaretskii
2012-07-22 21:01 ` Drew Adams
2012-07-22 21:07 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus whenit " Drew Adams
2012-07-22 21:21 ` Daniel Colascione
2012-07-23 1:13 ` Drew Adams
2012-07-22 21:16 ` Drew Adams
2012-07-23 17:33 ` Eli Zaretskii
2012-07-23 18:00 ` Drew Adams
2012-07-23 16:04 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when it " Eli Zaretskii
2012-07-23 16:28 ` Drew Adams
2012-07-23 17:58 ` Eli Zaretskii
2012-07-23 18:29 ` Drew Adams
2012-07-23 19:30 ` Eli Zaretskii
2012-07-24 12:47 ` martin rudalics
2012-07-25 15:42 ` Drew Adams
2012-07-25 16:17 ` Eli Zaretskii
2012-07-25 16:42 ` Drew Adams
2012-07-25 17:28 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus whenit " Drew Adams
2012-07-26 9:44 ` martin rudalics
[not found] ` <32A934E820BA4853B84229C32F7145A1@us.oracle! ! .com>
2012-07-26 13:51 ` Drew Adams
2012-07-26 16:05 ` martin rudalics
2012-07-26 16:21 ` Drew Adams
2012-07-26 16:52 ` martin rudalics
[not found] ` <2F76545DBD0C4F199A60F4! B750709112@us.oracle.com>
[not found] ` <FBD01B85621E4CB5AF89A744D72DA935@us.oracle.! ! com>
2012-07-26 17:08 ` Drew Adams
2012-07-26 17:41 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenit " Drew Adams
2012-07-27 6:33 ` martin rudalics
2012-07-28 15:29 ` Drew Adams
2012-07-29 13:56 ` martin rudalics
2012-07-28 15:31 ` Drew Adams
2012-07-29 13:56 ` martin rudalics
2012-07-27 6:33 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus whenit " martin rudalics
2012-07-28 15:29 ` Drew Adams
2012-07-29 13:55 ` martin rudalics
2012-07-29 16:26 ` Drew Adams
2012-07-29 17:08 ` martin rudalics
[not found] ` <F930898D9C4E4DC295235DD8! A4B7BFFE@us.oracle.com>
[not found] ` <F1206E98AF6C40E8BBDD20894A9BC0D2@us.oracle.co! ! m>
[not found] ` <F930898D9C4E4DC295235DD8!A4B7BFFE@us.oracle.com>
2012-07-29 18:01 ` Drew Adams
2012-07-30 9:13 ` martin rudalics
2012-08-01 16:34 ` Drew Adams
[not found] ` <F930898D9C4E4DC295235DD8! A4B7BFFE@us.oracle.co m>
2012-07-29 19:26 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenit " Drew Adams
2012-07-30 9:13 ` martin rudalics
2012-08-01 16:34 ` Drew Adams
[not found] ` <501BAAB0.1020!807@gmx! .at>
2012-08-03 10:40 ` martin rudalics
2012-08-03 16:46 ` Drew Adams
2012-08-03 17:00 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenitcalls `list-processes' Drew Adams
2012-08-04 13:45 ` martin rudalics
[not found] ` <7E4F337C7F6A4B8281!ABE6C82 A8CA70E@us.oracle.com>
[not found] ` <7E4F337C7F6A4B8281! ABE6C82A8CA70E@us.oracle.com>
[not found] ` <B7E92FDE8CFC4F798AEEB7CBFEFA933D@us.orac! ! le.com>
2012-08-05 22:32 ` Drew Adams
2012-08-05 23:10 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenitcalls`list-processes' Drew Adams
2012-08-06 15:29 ` martin rudalics
2012-08-06 20:56 ` Drew Adams
[not found] ` < 5022103E.6060502@gmx.at>
2012-08-07 8:58 ` martin rudalics
2012-08-08 7:07 ` martin rudalics
2012-08-08 16:19 ` Drew Adams
2012-08-08 16:32 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibufferfocuswhenitcalls`list-processes' Drew Adams
2012-08-08 16:38 ` bug#11939: 24.1; `save-buffers-kill-emacs' losesminibufferfocuswhenitcalls`list-processes' Drew Adams
2012-08-09 8:45 ` martin rudalics
2012-08-10 17:47 ` Drew Adams
2012-08-11 9:31 ` martin rudalics
2012-08-11 16:58 ` Drew Adams
[not found] ` <502! 785DF.1040200@gmx.at>
[not found] ` <A5E13547EC48444192A20752F3F4FAF9@us.oracle.com! >
[not found] ` <502!785DF.1040200@gmx.at>
[not found] ` <A5E13547EC48444192A20752F3F4FAF9@us.oracle.com!>
[not found] ` <5028! A8FD.60705@gmx .at>
2012-08-12 10:30 ` martin rudalics
2012-08-12 15:03 ` Drew Adams
2012-08-13 7:13 ` martin rudalics
2012-08-13 13:51 ` Drew Adams
2012-08-13 16:23 ` martin rudalics
2012-08-13 22:20 ` bug#11939: 24.1; `save-buffers-kill-emacs'losesminibufferfocuswhenitcalls`list-processes' Drew Adams
2012-08-14 9:10 ` martin rudalics
2012-08-14 14:36 ` Drew Adams
2012-08-14 16:04 ` martin rudalics
2012-08-14 17:39 ` Drew Adams
[not found] ` <502B7AC2.70! 004@gmx. at>
2012-08-15 10:32 ` martin rudalics
2012-08-26 4:11 ` Drew Adams
2012-08-26 4:31 ` Drew Adams
2012-08-09 8:45 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibufferfocuswhenitcalls`list-processes' martin rudalics
2012-08-09 21:53 ` Drew Adams
2012-08-10 9:33 ` martin rudalics
2012-08-09 8:44 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenitcalls`list-processes' martin rudalics
2012-08-09 21:53 ` Drew Adams
2012-08-06 15:29 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenitcalls `list-processes' martin rudalics
2012-08-06 20:55 ` Drew Adams
2012-08-07 8:58 ` martin rudalics
2012-08-07 13:39 ` Drew Adams
2012-08-04 13:44 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focuswhenit calls `list-processes' martin rudalics
2012-08-06 1:11 ` Drew Adams
2012-08-06 15:29 ` martin rudalics [this message]
2012-08-06 21:05 ` Drew Adams
[not found] ` <50! 20D8B6.5000701@gmx.at>
[not found] ` <254E2E4A521F4250A06349AD44BEEE63@us.oracle.co! ! m>
2012-08-07 8:58 ` martin rudalics
2012-08-07 13:59 ` Drew Adams
2012-08-08 7:07 ` martin rudalics
[not found] ` <E0132113E8CD4470A74D81C04D74585C@us.orac! ! le.com>
2012-08-08 16:18 ` Drew Adams
2012-08-09 8:44 ` martin rudalics
2012-08-09 21:54 ` Drew Adams
2012-07-26 15:48 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when it " martin rudalics
2012-07-26 15:52 ` Drew Adams
2012-07-23 9:34 ` martin rudalics
2012-07-23 16:12 ` Drew Adams
2012-07-24 12:46 ` martin rudalics
2012-07-25 15:02 ` Drew Adams
2012-07-26 9:43 ` martin rudalics
2012-07-16 14:52 ` Drew Adams
2012-09-05 14:30 ` martin rudalics
2012-09-05 14:35 ` Drew Adams
2012-10-03 16:18 ` bug#11939: 24.1; `save-buffers-kill-emacs' loses minibuffer focus when itcalls `list-processes' Drew Adams
2012-10-05 7:04 ` martin rudalics
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=501FE2DF.6030906@gmx.at \
--to=rudalics@gmx.at \
--cc=11939@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 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.