[One of my rare "awake from xemacs coma" moments.]
I think in order to fix the bad interaction between the italic face
and custom one "merely" needs to convert the size[1] function to use
frobbing.
i.e.
;
; I have kept the dependency on font.el for now
;
(defun make-face-size-helper (fontinst size &optional device)
(let ((fontobj (font-create-object (font-instance-name fontinst) device)))
(set-font-size fontobj size)
(font-create-name fontobj device)))
(defun make-face-size (face size &optional locale tags)
"Make FACE SIZE in LOCALE, if possible.
Add/Replace settings specified by tags only."
(frob-face-property face 'font
(lambda (f d) (make-face-size-helper f size d))
nil locale tags))
(defun custom-set-face-font-size (face size &optional locale tags)
"Set the font of FACE to SIZE."
(make-face-size face size locale tags))
This makes it possible to set the size using custom.
I haven't done any long-term testing. On the good side this (combined
with the same for family ) might very well get us a lot closer to
having custom & Mule play well.
Hope this helps,
Jan
Footnotes:
[1] and really the family as well.