unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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 focus when it calls	`list-processes'
Date: Mon, 16 Jul 2012 11:12:18 +0200	[thread overview]
Message-ID: <5003DAF2.2060400@gmx.at> (raw)
In-Reply-To: <6F73D04E8EE144E780D602DFEBA48E7B@us.oracle.com>

 > I'm afraid I still do not understand (but maybe I don't need to).  I thought the
 > problem has to do with input focus for minibuffer reading.  But maybe you are
 > saying that the minibuffer need not be involved, and that `read-event' will also
 > depend on which frame has the focus.
 >
 > In any case, please give me the specific recipe that you would like me to try.
 > I'm afraid I've lost track at this point.

`y-or-n-p' has the following two lines

                     (when minibuffer-auto-raise
                       (raise-frame (window-frame (minibuffer-window))))

So when you want to give focus to the minibuffer window you might want
to replace `raise-frame' by the stronger `select-frame-set-input-focus'

                     (when minibuffer-auto-raise
                       (select-frame-set-input-focus (window-frame (minibuffer-window))))

For this to work you have to defalias `yes-or-no-p' to `y-or-n-p'.

 > And is this still pertinent, given what we have discovered wrt a reproducible
 > recipe from emacs -Q?

As long as we have not found a solution, yes.

 >> I suppose that as long as you don't type either yes or no in the
 >> original frame nothing happens at all.
 >
 > Presumably _some_ buffer receives the input.  If it is a read-only buffer then I
 > would expect a read-only error message.  If it is not then I would expect to see
 > what I type in some buffer.  I see neither effect.  And presumably (it seems
 > that way anyway) it is the *Process List* buffer, which is read-only, that has
 > the focus.
 >
 > This behavior does not seem normal.

You would have to try with `y-or-n-p'.  read_minibuf has only

   Fmake_frame_visible (mini_frame);

   if (minibuffer_auto_raise)
     Fraise_frame (mini_frame);

which might not be sufficient for your case.  Once `y-or-n-p' with focus
selection works we can try to make it work in read_minibuf too.

 > The frame for posing and answering all questions should be, as usual, the
 > minibuffer frame.  Aside from `read-event' etc., reading user input should use
 > the minibuffer, and that means it should use the minibuffer frame.
 >
 > Looking at the C code for `yes-or-no-p' (Emacs 23.3), it clearly calls
 > `read-from-minibuffer' (`Fread_from_minibuffer'), so it should use the
 > minibuffer.  The frame that should have the input focus for that prompt and
 > reading should be the standalone minibuffer frame - that is the _only_ frame
 > that has a minibuffer.
 >
 > It makes no sense for any other frame to have the input focus when reading from
 > the minibuffer, since no other frame _has_ a minibuffer.

Most users don't care about standalone minibuffer frames.  They want to
see one frame where they find all information.

 >>  > More precisely, I don't have much of an opinion in the
 >>  > case of a non standalone minibuffer.
 >>  >
 >>  > But in the case of a standalone minibuffer, it definitely
 >>  > should continue to have the input focus.  That's the point, for me.
 >>
 >> Why "continue"?  You could invoke C-x C-c in any frame.
 >
 > See above.  It should have the input focus for any _reading from the
 > minibuffer_.  Obviously, other frames can have the input focus when not reading
 > from the minibuffer.  `yes-or-no-p' reads from the minibuffer.

So if another frame has input focus and emacs asks a `yes-or-no-p'
question, focus _should_ switch.

 > But the behavior I saw with that test indicated/suggested that *Help* was not
 > entirely special-display (with `pop-up-frames' t and the *Help* frame defined as
 > indicated with `special-display-buffer-names'.
 >
 > The frame was created with the correct colors etc., but buffer *Help* ended up
 > being replaced in the frame, which is not what "special display" means.  So I
 > think there might be a second bug here.

If this is independent from the behavior we discuss currently, we'll
have to investigate it.

 >>  > If I use Dired+ (which does what my patch does) then there
 >>  > is no problem, so in my daily use this is solved for the
 >>  > Dired but reported, but not in general (viz.
 >>  > this bug wrt quitting with active processes).
 >>
 >> But your patch doesn't address the input focus issue or am I missing
 >> something?
 >
 > Correct.  But the problem does not exist with my patch.  I don't have an
 > explanation.

Me neither.  You would have to go through it and find what it does
differently.

 > But please see the #15566 thread - in particular, the part about the use of code
 > that is nearly identical but that does not manifest the input problem.  See the
 > message I sent that has the attachment `throw-chmod-vs-chmod-rec.el'.  I do not
 > understand why what I report happens, but it happens.

 >> I have attached another version of `with-temp-buffer-window' which now
 >> explicitly shifts input focus to the frame selected at the time the
 >> macro is called.  I hope this will fix the `pop-up-frames' t scenario.
 >> I'm afraid it will not fix the problem when you invoke C-x C-c in any
 >> window but the minibuffer-only window so we probably have to fix that
 >> issue separately.  Please try it.
 >
 > Just what is the recipe to try (e.g. from emacs -Q)?

With your usual setting load the file and test the shell and the dired
scenarios.

 > Wrt "C-x C-c in any window but the minibuffer-only window": It's about reading
 > from the minibuffer (e.g. `read-from-minibuffer').  It never matters (apart from
 > this bug about new frames that get created during the minibuffer reading) which
 > buffer/frame is selected when you call `read-from-minibuffer'.  Focus is always
 > switched to the minibuffer (and its frame).

Because it does a simple `raise-frame' of the minibuffer frame which
seems to work when you don't pop up another frame before.

 > The problem here seems to be that just after focus is correctly switched to the
 > minibuffer frame, for minibuffer interaction (reading), the new frame is popped
 > up and MS Windows gives it the focus.  At least that's the (limited) conceptual
 > model I'm adopting so far.
 >
 > IOW, I don't think the problem is to give the minibuffer frame the focus.  I'm
 > assuming that that is happening correctly, as usual.  The problem, I think, is
 > that the new frame creation happens at the same time or just afterward, and that
 > steals the focus from the minibuffer frame (thanks to MS Windows).

It doesn't help to speculate.  I know of three functions to experiment
with (`select-frame' and `raise-frame' being apparently too weak):

- `select-frame-set-input-focus' which is probably too strong because it
   can change the Z-order thus obfuscating the frame where important
   information (like the list of directories to delete) is displayed,

- `x-focus-frame' which should redirect any input to the frame argument, and

- `redirect-frame-focus' which could be used to redirect input only from
   the frame where, for example, the marked directories are displayed to
   the minibuffer-only frame.

You can try to experiment with these, either in `y-or-n-p' or in
`with-temp-buffer-window'.  If neither of these helps to direct focus
away from the new frame, I see no solution.

martin






  reply	other threads:[~2012-07-16  9:12 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 [this message]
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]                                                                                                   ` <F930898D9C4E4DC295235DD8! A4B7BFFE@us.oracle.com>
     [not found]                                                                                                     ` <F1206E98AF6C40E8BBDD20894A9BC0D2@us.oracle.co! ! m>
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! ABE6C82A8CA70E@us.oracle.com>
     [not found]                                                                                                                     ` <B7E92FDE8CFC4F798AEEB7CBFEFA933D@us.orac! ! le.com>
     [not found]                                                                                                                   ` <7E4F337C7F6A4B8281!ABE6C82 A8CA70E@us.oracle.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
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

  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=5003DAF2.2060400@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 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).