unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Robert Weiner <rsw@gnu.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Alan Third <alan@idiocy.org>, emacs-devel <emacs-devel@gnu.org>
Subject: Re: select-frame-set-input-focus fails to raise the frame
Date: Sat, 16 Dec 2017 08:41:05 -0500	[thread overview]
Message-ID: <CA+OMD9iAFPHsszz1V9qQK-P6k6KVjNWnB8VSd7dp5Ro3+d-6ig@mail.gmail.com> (raw)
In-Reply-To: <83tvwrsouc.fsf@gnu.org>

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

On Fri, Dec 15, 2017 at 3:44 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Robert Weiner <rsw@gnu.org>
> > Date: Fri, 15 Dec 2017 12:38:15 -0500
> > Cc: Alan Third <alan@idiocy.org>, emacs-devel <emacs-devel@gnu.org>
> >
> > ​The problem was that I would set-window-buffer in the new frame
> > to a different buffer and that buffer would not display when
> > the new frame was brought frontmost and displayed temporarily
> > with a sleep-for delay.  Calling force-window-update had no
> > effect but calling (redisplay t) resolved it.
>
> What do you mean by "displayed temporarily"?  As long as the current
> command runs, Emacs will not enter redisplay; an explicit call to
> 'redisplay' is the only exception to that rule.  So it sounds like
> ​​
> what you describe is Emacs working as designed.
>
​​
​By displayed temporarily, I mean that new frame f2 and old
frame f1 largely overlap one another and I want f2 to appear
above f1 for a given delay, like half a second and then f1
to be raised atop it.​

I should have noted that I first tried force-window-update (doc string
says it marks the given window to be redisplayed the next time redisplay
runs) followed by a sit-for (doc string says it runs redisplay
unconditionally
until at least until any further input or timer expiration).  That
combination
did not work either.  Only the explicit call to redisplay worked.  This
seems
to conflict with the doc strings to me.  If you look at the functions I have
enclosed, you will see the behavior I am trying to produce.

My broader argument is that one should be able to program utilizing
window-based
functions more simply when the windows involved exist in separate frames
and an
external window manager is involved.  However, I see not everyone agrees
with this,
maybe because some of the behavior will always be asynchronous and possibly
non-deterministic.

Previously, I found Emacs handled mouse button drags between windows in
different frames
differently than drags between windows in a single frame.  I was able to
figure out a
consistent model that now works well for me.  I think this is similar, that
with some
work, managing windows across multiple frames can be made simpler and
less-error
prone than the way things are now.  But if the major maintainers of Emacs
are not very
interested in this, then I don't expect anything to happen.

Bob

​​

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

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

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-12 23:02 select-frame-set-input-focus fails to raise the frame Bob Weiner
2017-12-12 23:26 ` Robert Weiner
2017-12-13 20:47   ` Alan Third
2017-12-13 22:00     ` Robert Weiner
2017-12-13 22:26       ` Alan Third
2017-12-14  0:33         ` Robert Weiner
2017-12-14 21:03           ` Robert Weiner
2017-12-15 15:53             ` Robert Weiner
2017-12-15 16:10               ` Eli Zaretskii
2017-12-15 17:38                 ` Robert Weiner
2017-12-15 20:44                   ` Eli Zaretskii
2017-12-16 13:41                     ` Robert Weiner [this message]
2017-12-16 14:39                       ` Eli Zaretskii
2017-12-16 15:06                         ` Robert Weiner
2017-12-16 16:15                           ` Eli Zaretskii
2017-12-16 18:57                             ` Robert Weiner
2017-12-16 19:45                               ` Eli Zaretskii
2017-12-16 20:07                                 ` Robert Weiner
2017-12-16 19:06                             ` martin rudalics
2017-12-16 19:24                               ` Robert Weiner
2017-12-13  8:50 ` martin rudalics
2017-12-13 15:00   ` Robert Weiner
2017-12-13 16:07     ` Stefan Monnier
2017-12-13 16:33       ` Robert Weiner
2017-12-13 19:39         ` Eli Zaretskii
2017-12-13 19:30     ` martin rudalics
2017-12-13 22:14       ` Robert Weiner
2017-12-13 20:49 ` Alan Third
2017-12-13 21:53   ` 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+OMD9iAFPHsszz1V9qQK-P6k6KVjNWnB8VSd7dp5Ro3+d-6ig@mail.gmail.com \
    --to=rsw@gnu.org \
    --cc=alan@idiocy.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rswgnu@gmail.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).