summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-11-19 11:19:41 +0800
committerPo Lu <luangruo@yahoo.com>2022-11-19 11:19:41 +0800
commit10701635cfefde5e416215d72f4dababe0ce8d7f (patch)
tree1eed743537159df52e6c21f9f15306d81360ddee
parentb23a4a15055af504324c3a60e5c6cbd93becf9b0 (diff)
downloademacs-10701635cfefde5e416215d72f4dababe0ce8d7f.tar.gz
Fix bug#59371
* src/frame.c (Freconsider_frame_fonts): If a font parameter was set, create a params alist with it. Then, pass it to both default_font_parameter and face-set-after-frame-default. (bug#59371)
-rw-r--r--src/frame.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/frame.c b/src/frame.c
index f63a19e7dcf..151a4029958 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -5959,18 +5959,26 @@ have changed. */)
(Lisp_Object frame)
{
struct frame *f;
+ Lisp_Object params;
f = decode_window_system_frame (frame);
+ /* Kludge: if a `font' parameter was already specified,
+ create an alist containing just that parameter. (bug#59371) */
+ params = Qnil;
+
+ if (!NILP (get_frame_param (f, Qfont)))
+ params = list1 (Fcons (Qfont, get_frame_param (f, Qfont)));
+
/* First, call this to reinitialize any font backend specific
stuff. */
if (FRAME_RIF (f)->default_font_parameter)
- FRAME_RIF (f)->default_font_parameter (f, Qnil);
+ FRAME_RIF (f)->default_font_parameter (f, params);
/* Now call this to apply the existing value(s) of the `default'
face. */
- call1 (Qface_set_after_frame_default, frame);
+ call2 (Qface_set_after_frame_default, frame, params);
return Qnil;
}