[Sie-announce] SIEコード [3077] SVGTextElementについて、a要素に対応できるよう修正

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2011年 11月 7日 (月) 22:37:54 JST


Revision: 3077
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=3077
Author:   dhrname
Date:     2011-11-07 22:37:54 +0900 (Mon, 07 Nov 2011)

Log Message:
-----------
SVGTextElementについて、a要素に対応できるよう修正

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-07 13:14:15 UTC (rev 3076)
+++ branches/08x/089/org/w3c/dom/svg.js	2011-11-07 13:37:54 UTC (rev 3077)
@@ -4186,7 +4186,8 @@
           tlen = tar.getComputedTextLength(),
           anchor = style.getPropertyValue("text-anchor"),
           tedeco = style.getPropertyValue("text-decoration"), //text-decorationは継承しないので、個々に設定する
-          ttps = ttp.style;
+          ttps = ttp.style,
+          ae = [];
       ttps.fontSize = n + "px";
       ttps.fontFamily = style.getPropertyValue("font-family");
       ttps.fontStyle = style.getPropertyValue("font-style");
@@ -4240,6 +4241,7 @@
           } else if ((ti.localName === "a") && (ti.namespaceURI === "http://www.w3.org/2000/svg") && ti.firstChild) {
             ttp = ti._tar;
             ti = ti.firstChild;
+            ae[ae.length] = ti;
             i-=2;
           }
         }
@@ -4303,11 +4305,17 @@
             } else if (disp && !disp._isDefault) {
         di = "block";
       }
-      for (var i=0, tli=tft.length;i<tli;++i) {
+      for (var i=0, j=0, tli=tft.length;i<tli;++i) {
         tft[i].style.display = di;
+        while (ae[j]) { //a要素を処理
+          for (var l=0, tli=ae[j]._tars.length;l<tli;++l) {
+            ae[j]._tars[l].style.display = di;
+          }
+          ++j;
+        }
       }
       delete tar._cacheMatrix;
-      isRect = evt = tar = style = tedeco = tpp = ttpc = style = color = cursor = disp = vis = ttps = backr = backrs = di = tft = void 0;
+      ae = 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 メーリングリストの案内
アーカイブの一覧に戻る