[Sie-announce] SIEコード [2645] 0. 76 betaのバグを修正

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2011年 5月 4日 (水) 20:34:34 JST


Revision: 2645
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=2645
Author:   dhrname
Date:     2011-05-04 20:34:34 +0900 (Wed, 04 May 2011)

Log Message:
-----------
0.76 betaのバグを修正

Modified Paths:
--------------
    branches/07x/sie.js

Modified: branches/07x/sie.js
===================================================================
--- branches/07x/sie.js	2011-05-04 11:32:41 UTC (rev 2644)
+++ branches/07x/sie.js	2011-05-04 11:34:34 UTC (rev 2645)
@@ -1726,7 +1726,7 @@
         ti, paintType, v1,
         uri = null,
         color = null,
-        fill, stroke;
+        fill, stroke, stop;
     if (!!this[propertyName]) {
       tg = this.getPropertyCSSValue(propertyName);
     }
@@ -1754,18 +1754,24 @@
           uri = RegExp.$1;
         } else if (value === "currentColor") {
           paintType = /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102;
-          color = this.getPropertyValue("color");
+          color = this.getPropertyValue("color") || "rgb(0,0,0)";
         }
         ti.setPaint(paintType, uri, color, null);
         paintType = v1 = uri = color = null;
       } else if (this._isStop[propertyName]) {
         ti = new SVGColor();
-        ti.colorType = /*SVGColor.SVG_COLORTYPE_RGBCOLOR*/ 1;
+        if (value === "currentColor") {
+          ti.colorType = /*SVGColor.SVG_COLORTYPE_CURRENTCOLOR*/ 3;
+          value = this.getPropertyValue("color") || "rgb(0,0,0)";
+        } else {
+          ti.colorType = /*SVGColor.SVG_COLORTYPE_RGBCOLOR*/ 1;
+        }
         ti.setRGBColor(value);
       } else if (this._isColor[propertyName]) {
         ti = new CSSPrimitiveValue();
         fill = this.getPropertyCSSValue("fill");
         stroke = this.getPropertyCSSValue("stroke");
+        stop = this.getPropertyCSSValue("stop-color");
         if (fill) {
           if (fill.paintType === /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102) {
             fill.setPaint(fill.paintType, null, value, null);
@@ -1774,6 +1780,10 @@
           if (stroke.paintType === /*SVGPaint.SVG_PAINTTYPE_CURRENTCOLOR*/ 102) {
             stroke.setPaint(fill.paintType, null, value, null);
           }
+        } else if (stop) {
+          if (stop.colorType === /*SVGColor.SVG_COLORTYPE_CURRENTCOLOR*/ 3) {
+            stop.setRGBColor(value);
+          }
         }
       } else {
         ti = new CSSPrimitiveValue();
@@ -3928,6 +3938,7 @@
     /*responseXMLを使うと、時々、空のデータを返すことがあるため(原因は不明)、
      *ここでは、responseTextを用いる
      */
+    var dsd = new Date();
     var str = this.xmlhttp.responseText,
         objei = this._tar,
         s = DOMImplementation.createDocument("http://www.w3.org/2000/svg", "svg"),
@@ -6599,9 +6610,13 @@
     for (var i = 0; i < length; ++i) {
       stop = stops[i];
       sstyle = stop.ownerDocument.defaultView.getComputedStyle(stop, "");
-      ci = sstyle.getPropertyValue("stop-color");
-      color[i] = SVGColor.prototype._keywords[ci] || ci;
-      colors[i] = stop.offset.baseVal + " " + ci;
+      ci = sstyle.getPropertyCSSValue("stop-color");
+      if (ci && (ci.colorType === /*SVGColor.SVG_COLORTYPE_CURRENTCOLOR*/ 3)) {
+        /*再度、設定。css.jsのsetPropertyを参照*/
+        sstyle.setProperty("color", sstyle.getPropertyValue("color"));
+      }
+      color[i] =  "rgb(" +ci.rgbColor.red.cssText+ "," +ci.rgbColor.green.cssText+ "," +ci.rgbColor.blue.cssText+ ")";
+      colors[i] = stop.offset.baseVal + " " + color[i];
       opacity[i] = (sstyle.getPropertyValue("stop-opacity") || 1) * t.getPropertyValue("fill-opacity") * t.getPropertyValue("opacity");
     }
     ele["method"] = "none";




Sie-announce メーリングリストの案内
Zurück zum Archiv-Index