svnno****@sourc*****
svnno****@sourc*****
2011年 11月 6日 (日) 23:12:45 JST
Revision: 3073 http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=3073 Author: dhrname Date: 2011-11-06 23:12:45 +0900 (Sun, 06 Nov 2011) Log Message: ----------- SVGTextElementのdisplay処理を改良することで、軽量化 Modified Paths: -------------- branches/08x/089/org/w3c/dom/svg.js Modified: branches/08x/089/org/w3c/dom/svg.js =================================================================== --- branches/08x/089/org/w3c/dom/svg.js 2011-11-06 13:52:29 UTC (rev 3072) +++ branches/08x/089/org/w3c/dom/svg.js 2011-11-06 14:12:45 UTC (rev 3073) @@ -4218,7 +4218,7 @@ sty.marginTop = tar._isYokogaki ? -n-5+ "px" : "-5px"; sty.lineHeight = n+10+ "px"; sty.textDecoration = tedeco; - sty.display = "block"; + sty.display = "none" ttp.appendChild(ti._tars[ij]); sty = p = void 0; } @@ -4247,7 +4247,10 @@ cursor = style.getPropertyCSSValue("cursor"), vis = style.getPropertyCSSValue("visibility"), disp = style.getPropertyCSSValue("display"), - tts = tar._tar.style; + tts = tar._tar.style, + tft = tar.firstChild._tars, + ttt = tft[0].innerText.charAt(0), //あらかじめ初期化しておく + tfti; if (color === "none"){ tts.color = "transparent"; } else if (color.indexOf("url") === -1) { @@ -4265,18 +4268,16 @@ /*xとy属性が一つの値しか取らないとき、字詰めの処理をすべてブラウザに任せておく。 *以下では、他のdiv要素のテキストをすべて、最初のdiv要素にまとめている */ - var tft = tar.firstChild._tars, - ttt = tft[0].innerText.charAt(0), //あらかじめ初期化しておく - tfti; for (var i=1, tli=tft.length;i<tli;++i) { tfti = tft[i]; ttt += tfti.innerText; tfti.parentNode.removeChild(tfti); } tft[0].innerText = ttt; - ttt = tft = void 0; + ttt = void 0; } - var isRect = true; + var isRect = true, + di = "block"; if (ttp.lastChild) { if (ttp.lastChild.nodeName !== "rect") { isRect = false; @@ -4295,13 +4296,17 @@ if (vis && !vis._isDefault) { tts.visibility = vis.cssText.substring(vis.cssText.indexOf(":")+1, vis.cssText.length); } - if (disp && !disp._isDefault && (disp.cssText.indexOf("none") > -1)) { - tts.display = "none"; + /*dipslayプロパティだけは個々に設定しておく必要がある*/ + if (disp && !disp._isDefault && (disp.cssText.indexOf("none") > -1)) { + di = "none"; } else if (disp && !disp._isDefault) { - tts.display = "block"; + di = "block"; } + for (var i=0, tli=tft.length;i<tli;++i) { + tft[i].style.display = di; + } delete tar._cacheMatrix; - isRect = evt = tar = style = tedeco = tpp = ttpc = style = color = cursor = disp = vis = ttps = backr = backrs = void 0; + isRect = evt = tar = style = tedeco = tpp = ttpc = style = color = cursor = disp = vis = ttps = backr = backrs = di = tft = void 0; }, false); evt = tar = void 0; },false);