Fix #2186: irreversible modeline resizing
When adjusting fonts with doom-big-font-mode, or doom/increase-font-size and doom/decrease-font-size.
This commit is contained in:
parent
c9e9ef528d
commit
84252d8962
1 changed files with 21 additions and 28 deletions
|
@ -16,11 +16,6 @@ acceptable values for this variable.")
|
||||||
"How many steps to increase the font size (with `doom-font' as the base) when
|
"How many steps to increase the font size (with `doom-font' as the base) when
|
||||||
`doom-big-font-mode' is enabled and `doom-big-font' is nil.")
|
`doom-big-font-mode' is enabled and `doom-big-font' is nil.")
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defvar doom-change-font-size-hook nil
|
|
||||||
"A hook run after adjusting the font size with `doom/increase-font-size',
|
|
||||||
`doom/decrease-font-size', or `doom/reset-font-size'.")
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
;;; Library
|
;;; Library
|
||||||
|
@ -44,14 +39,14 @@ acceptable values for this variable.")
|
||||||
(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.
|
||||||
FRAME parameter defaults to current frame."
|
FRAME parameter defaults to current frame."
|
||||||
(let (success)
|
(if (null increment)
|
||||||
(if (null increment)
|
(let ((frames (doom--frame-list frame)))
|
||||||
(let ((frames (doom--frame-list frame)))
|
(dolist (frame frames)
|
||||||
(dolist (frame frames)
|
(when (frame-parameter frame 'font-scale)
|
||||||
(when (frame-parameter frame 'font-scale)
|
(set-frame-parameter frame 'font-scale nil)))
|
||||||
(set-frame-parameter frame 'font-scale nil)))
|
(set-frame-font doom-font 'keep-size frames)
|
||||||
(set-frame-font doom-font 'keep-size frames)
|
(and frames t))
|
||||||
(setq success (and frames t)))
|
(let (success)
|
||||||
(dolist (frame (doom--frame-list frame))
|
(dolist (frame (doom--frame-list frame))
|
||||||
(let* ((font (frame-parameter frame 'font))
|
(let* ((font (frame-parameter frame 'font))
|
||||||
(font (doom--font-name font frame))
|
(font (doom--font-name font frame))
|
||||||
|
@ -70,10 +65,11 @@ FRAME parameter defaults to current frame."
|
||||||
(error "Cannot change font size"))
|
(error "Cannot change font size"))
|
||||||
(set-frame-parameter frame 'font font)
|
(set-frame-parameter frame 'font font)
|
||||||
(set-frame-parameter frame 'font-scale (+ zoom-factor increment))
|
(set-frame-parameter frame 'font-scale (+ zoom-factor increment))
|
||||||
(setq success t))))
|
(setq success t)))
|
||||||
(when success
|
(when success
|
||||||
(run-hooks 'doom-change-font-size-hook)
|
;; Unlike `set-frame-font', `set-frame-parameter' won't trigger this
|
||||||
t)))
|
(run-hooks 'after-setting-font-hook)
|
||||||
|
t))))
|
||||||
|
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
@ -130,14 +126,11 @@ This uses `doom/increase-font-size' under the hood, and enlargens the font by
|
||||||
:global t
|
:global t
|
||||||
(unless doom-font
|
(unless doom-font
|
||||||
(user-error "`doom-font' must be set to a valid font"))
|
(user-error "`doom-font' must be set to a valid font"))
|
||||||
(let ((frame (selected-frame)))
|
(if doom-big-font
|
||||||
(if doom-big-font
|
(set-frame-font (if doom-big-font-mode doom-big-font doom-font)
|
||||||
(progn
|
'keep-size (doom--frame-list))
|
||||||
(set-frame-font (if doom-big-font-mode doom-big-font doom-font)
|
(doom-adjust-font-size
|
||||||
t (doom--frame-list frame))
|
(and doom-big-font-mode
|
||||||
(run-hooks 'doom-change-font-size-hook))
|
(integerp doom-big-font-increment)
|
||||||
(set-frame-font doom-font t (doom--frame-list frame))
|
(/= doom-big-font-increment 0)
|
||||||
(when (and doom-big-font-mode
|
doom-big-font-increment))))
|
||||||
(integerp doom-big-font-increment)
|
|
||||||
(/= doom-big-font-increment 0))
|
|
||||||
(doom-adjust-font-size doom-big-font-increment)))))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue