From: Drew Adams <drew.adams@oracle.com>
To: martin rudalics <rudalics@gmx.at>, 19012@debbugs.gnu.org
Subject: bug#19012: 25.0.50; `help-window-select'
Date: Wed, 12 Nov 2014 21:12:54 -0800 (PST) [thread overview]
Message-ID: <561951d1-fee4-44ea-bc22-d354b007601d@default> (raw)
In-Reply-To: <f64f1907-5323-4fad-892e-63d9d32271fa@default>
As the "discussion" with Stefan about what `special-display-function'
can or cannot do might have distracted from the bug description,
let me repeat the recipe to repro the problem, and this time
without including code to select the returned window (which is
irrelevant to the bug, as the previous recipe should have made
clear).
The bug is apparently caused by `w32-grab-focus-on-raise' = nil.
That should only have the effect of not causing `raise-frame' to
focus the frame. It should not prevent `help-window-select' (or
anything else) from selecting the window.
The effect should, because of `help-window-select' = t, be that
the *Help* window is selected. Selection should not depend on
whether `raise-frame' happens to also select/focus.
The recipe, after `emacs -Q' and evaluating the code below:
1. C-h v pop-up-frames RET
That correctly creates the *Help* frame. And because
MS Windows alwayse focuses a new frame, it has the focus.
OK so far.
2. Select the original frame (e.g. with the mouse), so that
it, not *Help*, now has the focus.
3. C-h v help-window-select RET
The *Help* window & frame are not selected/focused.
They should be.
The code:
(setq pop-up-frames t)
;; This should cause the *Help* window to be selected.
(setq help-window-select t)
;; This somehow causes the window/frame NOT to be selected.
;; If non-nil then there is no problem.
(setq w32-grab-focus-on-raise nil)
(add-to-list 'special-display-buffer-names
'("*Help*" foo ((background-color . "Thistle"))))
(defun foo (buf &optional args)
(let (win)
(setq win (funcall special-display-function buf args))
(raise-frame)
win))
Note that the doc string of `w32-grab-focus-on-raise'
specifically does not say that a value of nil means that
`raise-frame' takes the focus away (unfocuses). It says
only that a value of t means that `raise-frame' focuses
the frame.
Since nothing is said for nil, the presumption should be
that a nil value has no particular effect on focus, i.e.,
that it neither "grabs input focus", as does t, nor
removes focus.
And all of this code is anyway inside `with-help-window'
because of `C-h v'. So even if the bug were that
`raise-frame' removed the focus (unlike what the
`w-g-f-o-r' doc string says), `help-window-select'
should anyway ensure that *Help* is focused in the end.
----------------- What I said before ---------------
> Found it, I guess.
>
> In addition to non-nil pop-up-frames and the other code sent
> previously, do this: (setq w32-grab-focus-on-raise nil)
>
> Then, as I described, when the *Help* frame already exists it is not
> selected by C-h v etc.
>
> Now IIUC, that variable, `w32-grab-focus-on-raise', should only
> stop Windows from having `raise-frame' always focus the frame.
> That really is (should be) something different from this
> (`help-window-select').
>
> IOW, I do not want `raise-frame' to automatically focus the
> frame for input each time. But I might want `help-window-select'
> to select the *Help* frame. Make sense?
next prev parent reply other threads:[~2014-11-13 5:12 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-10 16:42 bug#19012: 25.0.50; `help-window-select' Drew Adams
2014-11-10 17:28 ` martin rudalics
2014-11-10 18:23 ` Drew Adams
2014-11-11 8:29 ` martin rudalics
2014-11-11 14:26 ` Drew Adams
2014-11-11 18:31 ` martin rudalics
2014-11-11 19:01 ` Drew Adams
2014-11-11 21:04 ` Drew Adams
2014-11-13 5:12 ` Drew Adams [this message]
2014-11-13 7:44 ` martin rudalics
2014-11-13 15:23 ` Drew Adams
2014-11-13 16:28 ` martin rudalics
2014-11-13 16:56 ` Drew Adams
2014-11-13 18:47 ` martin rudalics
2014-11-13 19:21 ` Drew Adams
2014-11-14 11:37 ` martin rudalics
2014-11-14 15:11 ` Drew Adams
2014-11-14 16:38 ` martin rudalics
2014-11-14 17:09 ` Drew Adams
2014-11-14 17:39 ` martin rudalics
2014-11-14 17:47 ` Drew Adams
2014-11-14 18:10 ` martin rudalics
2014-11-14 18:28 ` Drew Adams
2014-11-14 18:33 ` martin rudalics
2014-11-14 18:44 ` Drew Adams
2014-11-14 19:08 ` martin rudalics
2014-11-14 21:21 ` Drew Adams
2014-11-15 11:24 ` martin rudalics
2014-11-15 14:40 ` Drew Adams
2014-11-16 11:36 ` martin rudalics
2014-11-16 16:20 ` Drew Adams
2014-11-16 17:36 ` martin rudalics
2014-11-16 20:06 ` Drew Adams
2014-11-17 9:29 ` martin rudalics
2014-11-17 14:29 ` Drew Adams
2014-12-25 19:30 ` martin rudalics
2014-11-11 22:16 ` Stefan Monnier
2014-11-11 23:10 ` Drew Adams
2014-11-12 1:49 ` Stefan Monnier
2014-11-12 2:36 ` Drew Adams
2014-11-12 4:11 ` Stefan Monnier
2014-11-12 7:18 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=561951d1-fee4-44ea-bc22-d354b007601d@default \
--to=drew.adams@oracle.com \
--cc=19012@debbugs.gnu.org \
--cc=rudalics@gmx.at \
/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.