diff --git a/core/autoload/fonts.el b/core/autoload/fonts.el index 711828f0d..21636ca1d 100644 --- a/core/autoload/fonts.el +++ b/core/autoload/fonts.el @@ -32,6 +32,14 @@ acceptable values for this variable.") (or (x-decompose-font-name fontname) (error "Cannot decompose font name"))) +(defun doom--frame-list (&optional frame) + "Return a list consisting of FRAME and all of FRAME's child frames." + (let ((frame (or frame (selected-frame)))) + (cons (selected-frame) + (cl-loop for fr in (frame-list) + if (eq (frame-parameter fr 'parent-frame) frame) + collect fr)))) + ;;;###autoload (defun doom-adjust-font-size (increment &optional frame) "Increase size of font in FRAME by INCREMENT. @@ -52,7 +60,8 @@ Optional FRAME parameter defaults to current frame." (setq font (x-compose-font-name font)) (unless (x-list-fonts font) (error "Cannot change font size")) - (modify-frame-parameters frame `((font . ,font))))) + (dolist (fr (doom--frame-list frame)) + (modify-frame-parameters fr `((font . ,font)))))) ;; @@ -87,7 +96,7 @@ Assuming it has been adjusted via `doom/increase-font-size' and (let ((zoom-factor (frame-parameter nil 'font-scale))) (if (not zoom-factor) (user-error "Font size hasn't been changed") - (set-frame-font doom-font t) + (set-frame-font doom-font t (doom--frame-list)) (modify-frame-parameters nil '((font-scale))) (run-hooks 'doom-change-font-size-hook)))) @@ -109,6 +118,6 @@ This uses `doom/increase-font-size' under the hood, and enlargens the font by (set-frame-font (if doom-big-font-mode doom-big-font doom-font) t (list frame)) (run-hooks 'doom-change-font-size-hook)) - (set-frame-font doom-font t (list frame)) + (set-frame-font doom-font t (doom--frame-list frame)) (when doom-big-font-mode (doom-adjust-font-size doom-big-font-increment frame)))))