unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Robert Weiner <rsw@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: martin rudalics <rudalics@gmx.at>, Eli Zaretskii <eliz@gnu.org>,
	emacs-devel <emacs-devel@gnu.org>
Subject: Re: Suggestion: Add discussion of input focus handling to select-window; add select-frame-window
Date: Sat, 16 Dec 2017 11:11:43 -0500	[thread overview]
Message-ID: <CA+OMD9jfacXy752a8VVsr3zxgUxaC7SEyTM+byFpFC+v1bbzSQ@mail.gmail.com> (raw)
In-Reply-To: <jwv6098rcpo.fsf-monnier+Inbox@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2987 bytes --]

On Thu, Dec 14, 2017 at 8:42 PM, Stefan Monnier <monnier@iro.umontreal.ca>
wrote:

> > Does anyone else see a need for something like this or am I the only one
> > that finds there are too many gotchas
> > and complexities in dealing with combinations of these issues right now?
>
> I think we're generally better off embracing the idea that it's not
> Emacs's job to decide how to handle focus and window stacking.
>

It would be nice, but my experience has been that doing so just
leads to window-based commands that don't work well or properly
in a multi-frame environment.

​​
> Because the problems with focus and such don't all have to do with
> ​​
> technicalities of how the APIs work, but also with interaction about the
> ​​
> specific focus policy that the user may have chosen in his
> ​​
> window-manager (as well as with the frame/window management policies he
> ​​
> has setup in his display-buffer-alist).
> ​
>

Good point.  But I still think the idea of selected-window could
be better defined in a multi-frame environment as well as the
concept of "where editing takes place".

​From the Basic Concepts of Emacs Windows section of the Elisp Manual:

'In each frame, at any time, exactly one Emacs window is designated as
“selected within the frame”.  For the selected frame, that window is
called the “selected window”—the one in which most editing takes place,
and in which the cursor for selected windows appears (*note Cursor
Parameters::).  The selected window’s buffer is usually also the current
buffer, except when ‘set-buffer’ has been used (*note Current Buffer::).
As for non-selected frames, the window selected within the frame becomes
the selected window if the frame is ever selected.  *Note Selecting
Windows::.'

So if I programmatically select-window in a frame that does not have or gain
input focus, will most editing take place there?  Programmatic editing
commands
generally will and user editing commands will not.  So it depends what you
consider
"most editing" which I think remains undefined, right?  Maybe there is
another
as yet undefined idea in there of interactive window selection where input
focus
does shift.

At the very least, the basic sequence of calls to select an arbitrary window
for user editing should be explained both here and in the select-window
function,
since someone thinking about windows and buffers isn't likely to reference
frame-related documentation even though input focus is a frame-related
concept.
Just as someone concerned with whether it will rain today listens to a
weather
report and doesn't look up the technicalities of local cloud accumulation.
Yes,
there are complexities here but I believe it is possible to abstract a bit
more and
handle basic cases better so that multi-frame window handling can be
programmed more
like single frame window handling for the vast majority of cases.

Bob

[-- Attachment #2: Type: text/html, Size: 6169 bytes --]

  reply	other threads:[~2017-12-16 16:11 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-12 15:39 Suggestion: Add discussion of input focus handling to select-window; add select-frame-window Robert Weiner
2017-12-12 18:13 ` Robert Weiner
2017-12-12 18:49   ` Robert Weiner
2017-12-12 20:40   ` Stefan Monnier
2017-12-12 21:29     ` Robert Weiner
2017-12-12 21:57       ` Stefan Monnier
2017-12-12 20:37 ` Stefan Monnier
2017-12-12 21:19   ` Robert Weiner
2017-12-13  8:49 ` martin rudalics
2017-12-13 13:37   ` Stefan Monnier
2017-12-13 14:37     ` Robert Weiner
2017-12-13 19:29       ` martin rudalics
2017-12-13 20:30         ` Eli Zaretskii
2017-12-13 22:10           ` Stefan Monnier
2017-12-14  3:33             ` Eli Zaretskii
2017-12-14 15:01               ` Robert Weiner
2017-12-14 20:09                 ` Eli Zaretskii
2017-12-14 23:43                   ` Robert Weiner
2017-12-15  1:42                     ` Stefan Monnier
2017-12-16 16:11                       ` Robert Weiner [this message]
2017-12-16 16:42                         ` Eli Zaretskii
2017-12-16 17:23                           ` Robert Weiner
2017-12-16 16:27                       ` Robert Weiner
2017-12-16 16:21                 ` Robert Weiner
2017-12-16 16:29                   ` Eli Zaretskii
2017-12-16 17:04                     ` Robert Weiner
2017-12-16 17:15                       ` Robert Weiner
2017-12-16 17:26                       ` Eli Zaretskii
2017-12-16 18:16                         ` Robert Weiner
2017-12-16 18:41                           ` Eli Zaretskii
2017-12-16 19:18                             ` Robert Weiner
2017-12-16 19:56                               ` Eli Zaretskii
2017-12-16 20:52                                 ` Robert Weiner
2017-12-22 10:19                                   ` Eli Zaretskii
2017-12-16 22:44                                 ` Robert Weiner
2017-12-13 14:51   ` Robert Weiner

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=CA+OMD9jfacXy752a8VVsr3zxgUxaC7SEyTM+byFpFC+v1bbzSQ@mail.gmail.com \
    --to=rsw@gnu.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rswgnu@gmail.com \
    --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 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).