Mercurial > hg > xemacs-beta
diff lisp/fontconfig.el @ 4362:f5693b5f7f2d
Compute size for Xft fonts.
2007-12-23 Mike Sperber <mike@xemacs.org>
* font.el (xft-font-create-object): Use
`fc-pattern-get-or-compute-size' instead of
`fc-pattern-get-size'.
* fontconfig.el (fc-pattern-get-or-compute-size): Add.
author | Mike Sperber <sperber@deinprogramm.de> |
---|---|
date | Thu, 27 Dec 2007 08:16:15 +0100 |
parents | cef5f57bb9e2 |
children | 517f6887fbc0 |
line wrap: on
line diff
--- a/lisp/fontconfig.el Wed Dec 26 22:38:40 2007 -0800 +++ b/lisp/fontconfig.el Thu Dec 27 08:16:15 2007 +0100 @@ -350,6 +350,21 @@ (let ((pair (assoc str fc-font-name-weight-mapping-string-reverse))) (if pair (cdr pair)))) +(defun fc-pattern-get-or-compute-size (pattern id) + "Get the size from `pattern' associated with `id' or try to compute it. +Returns 'fc-result-no-match if unsucessful." + ;; Many font patterns don't have a "size" property, but do have a + ;; "dpi" and a "pixelsize" property". + (let ((maybe (fc-pattern-get-size pattern id))) + (if (not (eq maybe 'fc-result-no-match)) + maybe + (let ((dpi (fc-pattern-get-dpi pattern id)) + (pixelsize (fc-pattern-get-pixelsize pattern id))) + (if (and (numberp dpi) + (numberp pixelsize)) + (* pixelsize (/ 72 dpi)) + 'fc-result-no-match))))) + (defun fc-copy-pattern-partial (pattern attribute-list) "Return a copy of PATTERN restricted to ATTRIBUTE-LIST.