[Sie-announce] SIEコード [1996] text要素において、位置がずれるのを修正

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 9月 9日 (木) 22:14:52 JST


Revision: 1996
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1996
Author:   dhrname
Date:     2010-09-09 22:14:52 +0900 (Thu, 09 Sep 2010)

Log Message:
-----------
text要素において、位置がずれるのを修正

Modified Paths:
--------------
    branches/06x/061/org/w3c/dom/svg.js

Modified: branches/06x/061/org/w3c/dom/svg.js
===================================================================
--- branches/06x/061/org/w3c/dom/svg.js	2010-09-09 11:44:43 UTC (rev 1995)
+++ branches/06x/061/org/w3c/dom/svg.js	2010-09-09 13:14:52 UTC (rev 1996)
@@ -1524,13 +1524,6 @@
       var backright = bl + viewWidth + 1;
       var backdown = bt + viewHeight + 1;
       trstyle.clip = "rect(" +bt+ "px " +backright+ "px " +backdown+ "px " +bl+ "px)";
-      //以下、テキストの位置を修正
-      var text = tar._tar.getElementsByTagName("div");
-      for (var i=0,textli=text.length;i<textli;++i) {
-        var tis = text[i].style;
-        tis.left = parseFloat(tis.left) + bl + "px";
-        tis.top = parseFloat(tis.top) + bt + "px";
-      }
       this._document = s;
       if (!!s._svgload_limited) {
         /*_svgload_limitedプロパティはXlink言語が使われていない限り、0である。
@@ -3374,25 +3367,6 @@
     var tar = evt.target;
     var ttp = tar._tar;
     if (ttp) {
-      var isRect = true;
-      if (ttp.lastChild) {
-        if (ttp.lastChild.nodeName !== "rect") {
-          isRect = false;
-        }
-      } else {
-        isRect = false;
-      }
-      if (!isRect) {
-        var backr = document.createElement("v:rect");
-        var backrs = backr.style; //ずれを修正するためのもの
-        backrs.width = "1px";
-        backrs.height = "1px";
-        backrs.left = "0px";
-        backrs.top = "0px";
-        backr.stroked = "false";
-        backr.filled = "false";
-        ttp.appendChild(backr);
-      }
       var tnext = tar.nextSibling, tpar = tar.parentNode;
       if (tnext && !!tpar._tar) {
         if (!!!tnext._tar) {
@@ -3420,17 +3394,18 @@
       tnext = tpar = null;
     }
     tar.addEventListener("DOMNodeInsertedIntoDocument", function(evt) {
-      var tar = evt.target, ti = tar.firstChild;
+      var tar = evt.target, ti = tar.firstChild, ttp = tar._tar;
       var style = tar.ownerDocument.defaultView.getComputedStyle(tar, null);
       var n = parseFloat(style.getPropertyValue("font-size")) * Math.sqrt(Math.abs(tar.getScreenCTM()._determinant()));
-      tar._tar.style.fontSize = n + "px";
-      tar._tar.style.fontFamily = style.getPropertyValue("font-family");
+      ttp.style.fontSize = n + "px";
+      ttp.style.fontFamily = style.getPropertyValue("font-family");
       var tod = tar.ownerDocument.documentElement;
       for (var i=0, j=0, tli=tar.getNumberOfChars();i<tli;++i) {
         if (ti) {
           var p = tar.getStartPositionOfChar(i-j);
           if (!!ti._tar) {
             var sty = ti._tar[i].style;
+            sty.position = "absolute";
             sty.left = p.x + "px";
             sty.top = p.y + "px";
             sty.width = "0px";
@@ -3460,7 +3435,26 @@
       }
       var vis = style.getPropertyValue("visibility");
       tar._tar.style.visibility = vis;
-      evt = tar = style = null;
+      var isRect = true;
+      if (ttp.lastChild) {
+        if (ttp.lastChild.nodeName !== "rect") {
+          isRect = false;
+        }
+      } else {
+        isRect = false;
+      }
+      if (!isRect) {
+        var backr = document.createElement("v:rect");
+        var backrs = backr.style; //ずれを修正するためのもの
+        backrs.width = "1px";
+        backrs.height = "1px";
+        backrs.left = "0px";
+        backrs.top = "0px";
+        backr.stroked = "false";
+        backr.filled = "false";
+        ttp.appendChild(backr);
+      }
+      isRect = evt = tar = style = null;
     }, false);
     evt = tar = null;
   },false);




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