Fix font-resizing in child frames #1500

This commit is contained in:
Henrik Lissner 2019-06-17 16:01:37 +02:00
parent 0a7221798b
commit d27c148e14
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -32,6 +32,14 @@ acceptable values for this variable.")
(or (x-decompose-font-name fontname) (or (x-decompose-font-name fontname)
(error "Cannot decompose font name"))) (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 ;;;###autoload
(defun doom-adjust-font-size (increment &optional frame) (defun doom-adjust-font-size (increment &optional frame)
"Increase size of font in FRAME by INCREMENT. "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)) (setq font (x-compose-font-name font))
(unless (x-list-fonts font) (unless (x-list-fonts font)
(error "Cannot change font size")) (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))) (let ((zoom-factor (frame-parameter nil 'font-scale)))
(if (not zoom-factor) (if (not zoom-factor)
(user-error "Font size hasn't been changed") (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))) (modify-frame-parameters nil '((font-scale)))
(run-hooks 'doom-change-font-size-hook)))) (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) (set-frame-font (if doom-big-font-mode doom-big-font doom-font)
t (list frame)) t (list frame))
(run-hooks 'doom-change-font-size-hook)) (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 (when doom-big-font-mode
(doom-adjust-font-size doom-big-font-increment frame))))) (doom-adjust-font-size doom-big-font-increment frame)))))