branch: externals/beframe
commit 9198b0cb852ac655cf83aded9634c8e74eceb93c
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Simplify how frames are set up
    
    This ensures that the functions we call with a FRAME argument are
    evaluated in the desired order.
---
 beframe.el | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/beframe.el b/beframe.el
index 638f840f22..470c2e748f 100644
--- a/beframe.el
+++ b/beframe.el
@@ -557,18 +557,12 @@ Also see the `beframe-prefix-map'."
       (progn
         (setq beframe--read-buffer-function read-buffer-function
               read-buffer-function #'beframe-read-buffer)
-        (add-hook 'after-make-frame-functions #'beframe-frame-predicate)
-        (add-hook 'after-make-frame-functions #'beframe-maybe-rename-frame)
-        (add-hook 'after-make-frame-functions #'beframe-create-scratch-buffer)
-        (add-hook 'after-make-frame-functions 
#'beframe-do-not-assume-last-selected-buffer)
+        (add-hook 'after-make-frame-functions #'beframe-setup-frame)
         (add-hook 'context-menu-functions #'beframe-context-menu)
         (beframe--functions-in-frames))
     (setq read-buffer-function beframe--read-buffer-function
           beframe--read-buffer-function nil)
-    (remove-hook 'after-make-frame-functions #'beframe-frame-predicate)
-    (remove-hook 'after-make-frame-functions #'beframe-maybe-rename-frame)
-    (remove-hook 'after-make-frame-functions #'beframe-create-scratch-buffer)
-    (remove-hook 'after-make-frame-functions 
#'beframe-do-not-assume-last-selected-buffer)
+    (remove-hook 'after-make-frame-functions #'beframe-setup-frame)
     (remove-hook 'context-menu-functions #'beframe-context-menu)
     (beframe--functions-in-frames :disable)))
 
@@ -673,6 +667,18 @@ FRAME and optional NAME arguments are passed to the
   (when beframe-rename-function
     (funcall beframe-rename-function frame name)))
 
+(defun beframe-setup-frame (frame)
+  "Rename FRAME and create scratch buffer for it, if appropriate.
+Call the functions `beframe-frame-predicate',
+`beframe-do-not-assume-last-selected-buffer',
+`beframe-maybe-rename-frame', `beframe-create-scratch-buffer' in
+this order."
+  (dolist (fn '(beframe-frame-predicate
+                beframe-do-not-assume-last-selected-buffer
+                beframe-maybe-rename-frame
+                beframe-create-scratch-buffer))
+    (funcall fn frame)))
+
 (defun beframe--frame-buffer-p (buf &optional frame)
   "Return non-nil if BUF belongs to the current frame.
 Use optional FRAME to test if BUF belongs to it."

Reply via email to