From: Michael Heerdegen <michael_heerdegen@web.de>
To: help-gnu-emacs@gnu.org
Subject: Re: closing emacsclient always focuses another emacs window
Date: Mon, 10 Mar 2014 20:40:32 +0100 [thread overview]
Message-ID: <87eh29zvtb.fsf@web.de> (raw)
In-Reply-To: 83y50inhn7.fsf@gnu.org
Eli Zaretskii <eliz@gnu.org> writes:
> > From: Michael Heerdegen <michael_heerdegen@web.de>
> > Cc: Eli Zaretskii <eliz@gnu.org>
> > Date: Mon, 10 Mar 2014 05:30:42 +0100
> >
> > It seems that (selected-frame) is intended to "mean" the frame focused
> > when we hit C-x #. But note that evaluating the argument (server-done)
> > has the side effect of deleting that frame. Under the right
> > circumstances, the selected frame now can be any frame, including the
> > other emacsclient frame. In this case, `next-buffer' will be set and
> > the newly selected frame will be focused by the recursive call of
> > `server-switch-buffer'.
>
> AFAIK, which frame becomes selected in this situation is determined by
> the window manager.
I don't think that's what's happening.
This is what is evaluated:
(apply 'server-switch-buffer (server-done))
After `server-done' is evaluated, the client (e.g. the xterm) always has
input focus. The fact that
(advice-add
'server-switch-buffer :around
(lambda (f &rest args)
(when (car args) (apply f args))))
fixes the problem for the OP shows that this is also the case for him.
Note: while (server-done) is evaluated, `server-delete-client' calls
`delete-frame', which implicitly selects another Emacs frame.
Ok, after evaluating (server-done) now we have a different Emacs frame
selected, the server frame was deleted, and xterm has focus.
Now, `server-switch-buffer' is evaluated (without any Emacs frame having
input focus), and, depending on the current selected frame,
`select-frame-set-input-focus'es it as I explained.
So, the issue is completely independent from any window manager.
Regards,
Michael.
next prev parent reply other threads:[~2014-03-10 19:40 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-06 19:22 closing emacsclient always focuses another emacs window trygve.flathen
2014-03-06 19:28 ` trygve.flathen
2014-03-06 22:11 ` Gregor Zattler
2014-03-07 12:02 ` lee
2014-03-07 14:15 ` Gregor Zattler
2014-03-07 15:28 ` lee
[not found] ` <mailman.16651.1394143948.10748.help-gnu-emacs@gnu.org>
2014-03-07 18:24 ` trygve.flathen
2014-03-07 18:31 ` Gregor Zattler
[not found] ` <mailman.16685.1394217122.10748.help-gnu-emacs@gnu.org>
2014-03-08 13:18 ` trygve.flathen
2014-03-08 13:26 ` Eli Zaretskii
2014-03-08 14:30 ` Yuri Khan
2014-03-08 15:04 ` Eli Zaretskii
2014-03-08 17:45 ` Michael Heerdegen
2014-03-08 17:57 ` Eli Zaretskii
2014-03-08 21:55 ` Michael Heerdegen
2014-03-08 23:18 ` Michael Heerdegen
2014-03-09 0:30 ` Michael Heerdegen
[not found] ` <mailman.16740.1394300785.10748.help-gnu-emacs@gnu.org>
2014-03-08 18:42 ` trygve.flathen
2014-03-09 0:44 ` Michael Heerdegen
[not found] ` <mailman.16766.1394325871.10748.help-gnu-emacs@gnu.org>
2014-03-09 18:22 ` trygve.flathen
2014-03-09 18:54 ` Michael Heerdegen
[not found] ` <mailman.16808.1394391268.10748.help-gnu-emacs@gnu.org>
2014-03-09 19:50 ` trygve.flathen
2014-03-09 21:36 ` Michael Heerdegen
2014-03-10 3:40 ` Eli Zaretskii
2014-03-10 4:30 ` Michael Heerdegen
2014-03-10 5:00 ` Michael Heerdegen
2014-03-10 16:27 ` Eli Zaretskii
2014-03-10 19:40 ` Michael Heerdegen [this message]
2014-03-10 20:03 ` Eli Zaretskii
2014-03-10 20:29 ` Eli Zaretskii
2014-03-10 22:11 ` Michael Heerdegen
2014-03-10 23:06 ` Michael Heerdegen
2014-03-11 4:25 ` Michael Heerdegen
2014-03-11 17:23 ` Eli Zaretskii
2014-03-12 0:31 ` Michael Heerdegen
[not found] ` <mailman.17005.1394584349.10748.help-gnu-emacs@gnu.org>
2014-03-12 17:58 ` trygve.flathen
2014-03-13 7:57 ` Michael Heerdegen
2014-03-26 23:57 ` Michael Heerdegen
[not found] ` <mailman.16982.1394558617.10748.help-gnu-emacs@gnu.org>
2014-03-12 17:49 ` trygve.flathen
2014-03-10 2:40 ` Michael Heerdegen
[not found] ` <mailman.16841.1394419242.10748.help-gnu-emacs@gnu.org>
2014-03-10 22:18 ` trygve.flathen
2014-03-10 22:34 ` Michael Heerdegen
2014-03-10 22:48 ` Michael Heerdegen
[not found] ` <mailman.16731.1394291075.10748.help-gnu-emacs@gnu.org>
2014-03-08 15:53 ` Dan Espen
2014-03-08 17:28 ` Eli Zaretskii
[not found] ` <mailman.16729.1394285215.10748.help-gnu-emacs@gnu.org>
2014-03-08 15:58 ` trygve.flathen
2014-03-08 17:38 ` Eli Zaretskii
2014-03-08 17:54 ` Eli Zaretskii
[not found] ` <mailman.16742.1394301274.10748.help-gnu-emacs@gnu.org>
2014-03-08 18:49 ` trygve.flathen
[not found] ` <mailman.16739.1394300339.10748.help-gnu-emacs@gnu.org>
2014-03-08 19:06 ` trygve.flathen
2014-03-08 19:37 ` Eli Zaretskii
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=87eh29zvtb.fsf@web.de \
--to=michael_heerdegen@web.de \
--cc=help-gnu-emacs@gnu.org \
/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.
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).