4343(defcustom  turtles-pop-to-buffer-actions 
4444  '(turtles-pop-to-buffer-copy
4545    turtles-pop-to-buffer-embedded
46-     turtles-pop-to-buffer-new -frame)
46+     turtles-pop-to-buffer-other -frame)
4747  " Set of possible handlers of instance buffers.
4848
4949This are actions called by `turtles-pop-to-buffer'  to display 
@@ -1098,8 +1098,8 @@ This function is meant to be added to
10981098                (activate-mark )))))))))
10991099   (t  (error  " Unknown action %s  "  action))))
11001100
1101- (defun  turtles-pop-to-buffer-new -frame  (action  inst  buffer-name  &rest  _ignored )
1102-   " Ask instance to open  the buffer  in a new  frame.
1101+ (defun  turtles-pop-to-buffer-other -frame  (action  inst  buffer-name  &rest  _ignored )
1102+   " Open buffer on  the instance,  in another  frame.
11031103
11041104When called with ACTION set to \\= 'display, display BUFFER-NAME 
11051105in the Turtles instance INST, by asking the instance to create a 
@@ -1110,15 +1110,29 @@ with action set to \\='check, answer nil when running in a
11101110terminal. 
11111111
11121112This function is meant to be added to `turtles-pop-to-buffer-actions' "  
1113-   (let  ((params (frame-parameters )))
1113+   (let*  ((params (frame-parameters ))
1114+          (window-system  (alist-get  'window-system  params))
1115+          (display (alist-get  'display  params)))
11141116    (cond 
11151117     ((eq  'check  action) (alist-get  'window-system  params))
11161118     ((eq  'display  action)
11171119      (turtles-instance-eval inst
11181120       `(let  ((buf (get-buffer  , buffer-name
1119-           (select-frame  (make-frame 
1120-                          '((window-system  .  ,(alist-get  'window-system  params))
1121-                            (display .  ,(alist-get  'display  params)))))
1121+           (select-frame 
1122+            (or 
1123+             (car  (delq  nil 
1124+                        (mapcar 
1125+                         (lambda  (f )
1126+                           (let  ((params (frame-parameters  f)))
1127+                             (when  (and  (eq  ', window-system
1128+                                            (alist-get  'window-system  params))
1129+                                        (eq  ', display
1130+                                            (alist-get  'display  params)))
1131+                               f)))
1132+                         (frame-list ))))
1133+             (make-frame 
1134+              '((window-system  .  ,(alist-get  'window-system  params))
1135+                (display .  ,(alist-get  'display  params))))))
11221136          (set-window-buffer  (frame-root-window ) buf)
11231137          (make-frame-visible ))))
11241138     (t  (error  " Unknown action %s  "  action)))))
0 commit comments