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."