Improve font resizing commands
- doom/increase-font-size no longer resets the font when resizing back to 0 (causing an inelegant flash of the frame). - doom/reset-font-size will now reset text-scale, as well, if it is being used. - doom/*-font-size commands have been changed to only affect the current frame. - doom-big-font-mode will now affect all frames (since minor modes can't be frame-local).
This commit is contained in:
parent
ccf7197acf
commit
bf8cc9b007
1 changed files with 19 additions and 16 deletions
|
@ -58,8 +58,7 @@ 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"))
|
||||||
(dolist (fr (doom--frame-list frame))
|
(set-frame-parameter frame 'font font)))
|
||||||
(modify-frame-parameters fr `((font . ,font))))))
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
@ -82,11 +81,9 @@ See `doom-init-fonts-h'."
|
||||||
(let ((zoom-factor (or (frame-parameter nil 'font-scale) 0))
|
(let ((zoom-factor (or (frame-parameter nil 'font-scale) 0))
|
||||||
(increment (* count doom-font-increment)))
|
(increment (* count doom-font-increment)))
|
||||||
(setq zoom-factor (+ zoom-factor increment))
|
(setq zoom-factor (+ zoom-factor increment))
|
||||||
(if (= zoom-factor 0)
|
(doom-adjust-font-size increment)
|
||||||
(doom/reset-font-size)
|
(set-frame-parameter nil 'font-scale zoom-factor)
|
||||||
(doom-adjust-font-size increment)
|
(run-hooks 'doom-change-font-size-hook)))
|
||||||
(modify-frame-parameters nil `((font-scale . ,zoom-factor)))
|
|
||||||
(run-hooks 'doom-change-font-size-hook))))
|
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/decrease-font-size (count)
|
(defun doom/decrease-font-size (count)
|
||||||
|
@ -96,17 +93,23 @@ See `doom-init-fonts-h'."
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/reset-font-size ()
|
(defun doom/reset-font-size ()
|
||||||
"Reset font size.
|
"Reset font size and `text-scale'.
|
||||||
|
|
||||||
Assuming it has been adjusted via `doom/increase-font-size' and
|
Assuming it has been adjusted via `doom/increase-font-size' and
|
||||||
`doom/decrease-font-size'."
|
`doom/decrease-font-size', or `text-scale-*' commands."
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((zoom-factor (frame-parameter nil 'font-scale)))
|
(let (success)
|
||||||
(if (not zoom-factor)
|
(when (and (boundp 'text-scale-mode-amount)
|
||||||
(user-error "Font size hasn't been changed")
|
(/= text-scale-mode-amount 0))
|
||||||
(set-frame-font doom-font t (doom--frame-list))
|
(text-scale-set 0)
|
||||||
(modify-frame-parameters nil '((font-scale)))
|
(setq success t))
|
||||||
(run-hooks 'doom-change-font-size-hook))))
|
(when-let (factor (frame-parameter nil 'font-scale))
|
||||||
|
(set-frame-font doom-font t)
|
||||||
|
(set-frame-parameter nil 'font-scale nil)
|
||||||
|
(setq success t))
|
||||||
|
(unless success
|
||||||
|
(user-error "The font hasn't been resized"))
|
||||||
|
(run-hooks 'doom-change-font-size-hook)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(define-minor-mode doom-big-font-mode
|
(define-minor-mode doom-big-font-mode
|
||||||
|
@ -124,7 +127,7 @@ This uses `doom/increase-font-size' under the hood, and enlargens the font by
|
||||||
(if doom-big-font
|
(if doom-big-font
|
||||||
(progn
|
(progn
|
||||||
(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 (doom--frame-list frame))
|
||||||
(run-hooks 'doom-change-font-size-hook))
|
(run-hooks 'doom-change-font-size-hook))
|
||||||
(set-frame-font doom-font t (doom--frame-list frame))
|
(set-frame-font doom-font t (doom--frame-list frame))
|
||||||
(when doom-big-font-mode
|
(when doom-big-font-mode
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue