Skip to content

Commit 2bc8006

Browse files
Yuri Khanyurikhan
Yuri Khan
authored andcommitted
defer fonts-setup until creation of a graphical frame
1 parent a6500fc commit 2bc8006

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

unicode-fonts.el

+26-2
Original file line numberDiff line numberDiff line change
@@ -5035,15 +5035,18 @@ and regenerated."
50355035
;;; main entry point
50365036

50375037
;;;###autoload
5038-
(defun unicode-fonts-setup (&optional fontset-names regenerate)
5038+
(defun unicode-fonts--setup-0 (&optional fontset-names regenerate frame)
50395039
"Set up Unicode fonts for FONTSET-NAMES.
50405040
50415041
Optional FONTSET-NAMES must be a list of strings. Fontset names
50425042
which do not currently exist will be ignored. The default value
50435043
is `unicode-fonts-fontset-names'.
50445044
50455045
Optional REGENERATE requests that the disk cache be invalidated
5046-
and regenerated."
5046+
and regenerated.
5047+
5048+
FRAME must be a graphical frame. Default is the selected
5049+
frame."
50475050
(interactive)
50485051
(unicode-fonts-compute-skipped-fonts)
50495052
(callf or fontset-names unicode-fonts-fontset-names)
@@ -5055,8 +5058,29 @@ and regenerated."
50555058
;; Cocoa Emacs crashes unless this is deferred. set-language-environment-hook
50565059
;; seems more logical than after-init-hook, but s-l-h appears to have already happened.
50575060
(add-hook 'after-init-hook `(lambda () (unicode-fonts--setup-1 ,fontset-name)))
5061+
(when frame (select-frame frame))
50585062
(unicode-fonts--setup-1 fontset-name regenerate)))))
50595063

5064+
;;; main entry point
5065+
5066+
;;;###autoload
5067+
(defun unicode-fonts-setup (&optional fontset-names regenerate)
5068+
"Set up Unicode fonts for FONTSET-NAMES.
5069+
5070+
FONTSET-NAMES must be a list of strings. Fontset names
5071+
which do not currently exist will be ignored. The
5072+
default value is `unicode-fonts-fontset-names'."
5073+
(interactive)
5074+
(add-hook 'after-init-hook
5075+
`(lambda ()
5076+
(if (display-multi-font-p)
5077+
(unicode-fonts--setup-0 ,fontset-names ,regenerate)
5078+
;; The initial frame does not support fonts (emacs --daemon or -nw).
5079+
;; Defer until a graphical frame is created.
5080+
(add-hook 'after-make-frame-functions
5081+
(lambda (frame)
5082+
(unicode-fonts--setup-0 ,fontset-names ,regenerate frame)))))))
5083+
50605084
(provide 'unicode-fonts)
50615085

50625086
;;

0 commit comments

Comments
 (0)