Subject: bug#25521: 26.0.50; After (make-frame '((name . "foo"))) (select-frame-by-name "foo") doesn't see the frame

From: "Alex \(QWxleA\)" <[email-masked]>
Date: Thu, 26 Jan 2017 17:48:38 +0200

[email-masked] writes:

> "Alex (QWxleA)" <[email-masked]> writes:
>
>>>
>>> Can you clarify if the waitless version I suggested in
>>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25521#8 also works?
>>
>> No, the wrong frame is targeted without (select-frame-by-name "foo").
>> Without it, the parent-frame will run (org-agenda).
>>
>> Select-frame-by-name does not work without (sleep-for 0.00134).
>
> It sounds like you didn't try my suggestion to use
>
>     (select-frame (make-frame '((width . 120)
>                                 (height . 25))))
>
> instead of select-frame-by-name.  Could you please try that?  (or is
> there some other reason it doesn't apply in your situation?)

Ah, sorry, did not try that. Your above mentioned suggestion works. As I
needed the name to be set for my window-manager, I ended up with the following (but it
also works without (name . "foo")):

(defun qw ()
  (interactive) 
  (select-frame (make-frame '((name . "foo") 
                              (width . 120)
                              (height . 25))))
  (org-agenda))

This is perfect, it does the same thing as:

(defun qw ()
  (interactive)
  (make-frame '( (name . "foo")
                (width . 120)
                (height . 25)))
  (sleep-for 0.00134)
  (select-frame-by-name "foo") 
  (org-agenda))

But without the time-delay, so for my use it works, and is shorter to
boot, excellent!

Select-frame-by-name is a bit slow, when called right after make-frame, which might be
a bug or not.

Thanks for all the replies,

Alex