]> git.eshelyaron.com Git - emacs.git/commitdiff
(x_set_font): When ARG is a font-object, check if the
authorKenichi Handa <handa@m17n.org>
Wed, 29 Apr 2009 01:40:57 +0000 (01:40 +0000)
committerKenichi Handa <handa@m17n.org>
Wed, 29 Apr 2009 01:40:57 +0000 (01:40 +0000)
font-object matches with the ASCII font-spec of the frame's
fontset.  If not, create a new fontset for the frame.

src/frame.c

index 80a691e35fde1bf9a1a13eff7402ccae831addfa..eb9088b5478394ce2f38bebd3b56ca7714b67438 100644 (file)
@@ -3418,6 +3418,16 @@ x_set_font (f, arg, oldval)
         itself in the future.  */
       arg = AREF (font_object, FONT_NAME_INDEX);
       fontset = FRAME_FONTSET (f);
+      /* Check if we can use the current fontset.  If not, set FONTSET
+        to -1 to generate a new fontset from FONT-OBJECT.  */
+      if (fontset >= 0)
+       {
+         Lisp_Object ascii_font = fontset_ascii (fontset);
+         Lisp_Object spec = font_spec_from_name (ascii_font);
+
+         if (! font_match_p (spec, font_object))
+           fontset = -1;
+       }
     }
   else
     signal_error ("Invalid font", arg);