Mercurial > emacs
changeset 98122:e3d5c2e9ec89
(compose-gstring-for-graphic): Fix previous change.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 10 Sep 2008 05:48:37 +0000 |
parents | 4ef95817eae2 |
children | c674ed7591e1 |
files | lisp/composite.el |
diffstat | 1 files changed, 58 insertions(+), 50 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/composite.el Wed Sep 10 04:03:15 2008 +0000 +++ b/lisp/composite.el Wed Sep 10 05:48:37 2008 +0000 @@ -579,56 +579,64 @@ (de (lglyph-descent glyph)) (ce (/ (+ lb rb) 2)) xoff yoff) - (if (and - class (>= class 200) (<= class 240) - (cond - ((= class 200) - (setq xoff (- lbearing ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 202) - (if (> as 0) (setq as 0)) - (setq xoff (- center ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 204) - (if (> as 0) (setq as 0)) - (setq xoff (- rbearing ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 208) - (setq xoff (- lbearing rb))) - ((= class 210) - (setq xoff (- rbearing lb))) - ((= class 212) - (setq xoff (- lbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 214) - (setq xoff (- center ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 216) - (setq xoff (- rbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 218) - (setq xoff (- lbearing ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 220) - (setq xoff (- center ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 222) - (setq xoff (- rbearing ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 224) - (setq xoff (- lbearing rb))) - ((= class 226) - (setq xoff (- rbearing lb))) - ((= class 228) - (setq xoff (- lbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))) - ((= class 230) - (setq xoff (- center ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))) - ((= class 232) - (setq xoff (- rbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))))) - (lglyph-set-adjustment glyph (- xoff width) yoff)))))) + (when (and class (>= class 200) (<= class 240)) + (setq xoff 0 yoff 0) + (cond + ((= class 200) + (setq xoff (- lbearing ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 202) + (if (> as 0) (setq as 0)) + (setq xoff (- center ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 204) + (if (> as 0) (setq as 0)) + (setq xoff (- rbearing ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 208) + (setq xoff (- lbearing rb))) + ((= class 210) + (setq xoff (- rbearing lb))) + ((= class 212) + (setq xoff (- lbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 214) + (setq xoff (- center ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 216) + (setq xoff (- rbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 218) + (setq xoff (- lbearing ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 220) + (setq xoff (- center ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 222) + (setq xoff (- rbearing ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 224) + (setq xoff (- lbearing rb))) + ((= class 226) + (setq xoff (- rbearing lb))) + ((= class 228) + (setq xoff (- lbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de gap)))) + ((= class 230) + (setq xoff (- center ce) + yoff (if (>= de 0) 0 (- (- ascent) de gap)))) + ((= class 232) + (setq xoff (- rbearing ce) + yoff (if (>= de 0) 0 (- (+ ascent de) gap))))) + (lglyph-set-adjustment glyph (- xoff width) yoff) + (setq lb (+ lb xoff) + rb (+ lb xoff) + as (- as yoff) + de (+ de yoff))) + (if (< ascent as) + (setq ascent as)) + (if (< descent de) + (setq descent de)))))) (let ((i 0)) (while (and (< i nglyphs) (setq glyph (lgstring-glyph gstring i))) (lglyph-set-from-to glyph 0 (1- nchars))