unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Noam Postavsky <npostavs@users.sourceforge.net>
To: martin rudalics <rudalics@gmx.at>
Cc: 25521@debbugs.gnu.org, qwxlea@gmail.com
Subject: bug#25521: 26.0.50; After (make-frame '((name . "foo"))) (select-frame-by-name "foo") doesn't see the frame
Date: Wed, 27 Sep 2017 08:13:22 -0400	[thread overview]
Message-ID: <87poacfifx.fsf@users.sourceforge.net> (raw)
In-Reply-To: <59CB5D18.2090806@gmx.at> (martin rudalics's message of "Wed, 27 Sep 2017 10:11:04 +0200")

martin rudalics <rudalics@gmx.at> writes:

> I would add to NEWS something like "'select-frame-by-name' now may
> return a frame on another display if it does not find a suitable one on
> the current display".

Sure.

> Is there anything I could tweak here to observe a visible impact?  If I
> set ‘x-wait-for-event-timeout’ to some large value nothing becomes
> noticeable here, apparently because the frame is created fast enough.

I think you might have to change window managers.  For instance, when
using i3, adding 'assign [class="Emacs"] 9' to ~/.i3/config will make
Emacs frames show up in workspace 9.  When calling make-frame-command
from a different workspace, Emacs will not get the message about frame
visibility until you switch to workspace 9.

    (let ((x-wait-for-event-timeout nil))
      (benchmark 1 '(make-frame-command)))"Elapsed time: 0.083540s"
    (let ((x-wait-for-event-timeout 0.1)) ; default
      (benchmark 1 '(make-frame-command)))"Elapsed time: 0.169369s"
    (let ((x-wait-for-event-timeout 100.0))
      (benchmark 1 '(make-frame-command)))"Elapsed time: 1.338770s (0.052083s in 1 GCs)"

Hmm, that is actually less effect than I expected.  I recall now that
some non-relevant MapNotify events get sent in this case [1].  These
make x_wait_for_event (f, MapNotify) return earlier than the previous
busy wait.

Should we wrap a timeout loop around the x_wait_for_event call?  Or make
the wait more selective (e.g., check that the given frame matches)?
Seems a bit like overkill considering that a timeout of longer than 1
second is unlikely to be wanted, on the other hand, we're not really
waiting for the right thing...

[1]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24091#57


> (3) Install the ‘select-frame-by-name’ patch on the release branch.
>
> The reason why I think that (3) is good to have despite of (1) is that
> functions would behave reasonably well on systems where the user sets
> the timeout to zero.  Thus people who, for some reason, cannot or do not
> want a larger timeout have a fallback.  Differently put: A timeout of
> zero should work well as default too.

Yes, I agree with this.





  reply	other threads:[~2017-09-27 12:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-24 21:05 bug#25521: 26.0.50; After (make-frame '((name . "foo"))) (select-frame-by-name "foo") doesn't see the frame Alex 'QWxleA' Poslavsky
2017-01-24 23:35 ` npostavs
2017-01-25  3:37   ` Eli Zaretskii
2017-01-25  3:31 ` Eli Zaretskii
2017-01-25  6:47   ` Alex (QWxleA)
2017-01-25 23:43     ` npostavs
2017-01-26 11:40       ` Alex (QWxleA)
2017-01-26 14:37         ` npostavs
2017-01-26 15:48           ` Alex (QWxleA)
2017-01-27  2:02             ` npostavs
2017-01-27  7:56               ` Eli Zaretskii
2017-06-30  3:08                 ` npostavs
2017-06-30  6:09                   ` Eli Zaretskii
2017-06-30  6:52                   ` martin rudalics
2017-09-01  3:13                     ` npostavs
2017-09-01  6:56                       ` Eli Zaretskii
2017-09-01 13:02                       ` martin rudalics
2017-09-01 13:41                         ` npostavs
2017-09-01 15:45                           ` martin rudalics
2017-09-26  2:54                             ` Noam Postavsky
2017-09-27  8:11                               ` martin rudalics
2017-09-27 12:13                                 ` Noam Postavsky [this message]
2017-09-29  8:33                                   ` martin rudalics
2017-09-29 12:48                                     ` Noam Postavsky
2017-09-29 18:19                                       ` martin rudalics
2017-09-29 22:47                                         ` Noam Postavsky
2017-09-29 13:39                                 ` Eli Zaretskii
2017-10-14  2:14                                 ` Noam Postavsky
2017-10-14  8:36                                   ` martin rudalics
2017-10-15 18:22                                     ` Noam Postavsky

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=87poacfifx.fsf@users.sourceforge.net \
    --to=npostavs@users.sourceforge.net \
    --cc=25521@debbugs.gnu.org \
    --cc=qwxlea@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).