[Sie-announce] SIEコード [3073] SVGTextElementのdisplay処理を改良することで、軽量化

Back to archive index

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);




Sie-announce メーリングリストの案内
Back to archive index