flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From carlosrov...@apache.org
Subject [13/17] git commit: [flex-asjs] [refs/heads/feature/mdl] - Fix getScreenBoundingRect() for svg elements.
Date Mon, 26 Dec 2016 18:41:04 GMT
Fix getScreenBoundingRect() for svg elements.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/85c08046
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/85c08046
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/85c08046

Branch: refs/heads/feature/mdl
Commit: 85c080468af4d1b1bd8602b9e284f5b6c211a845
Parents: d277641
Author: yishayw <yishayjobs@hotmail.com>
Authored: Mon Dec 26 11:18:03 2016 +0200
Committer: yishayw <yishayjobs@hotmail.com>
Committed: Mon Dec 26 11:18:03 2016 +0200

----------------------------------------------------------------------
 .../flex/org/apache/flex/utils/DisplayUtils.as  | 24 ++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/85c08046/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/DisplayUtils.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/DisplayUtils.as
b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/DisplayUtils.as
index 483ab41..ac66a19 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/DisplayUtils.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/DisplayUtils.as
@@ -19,7 +19,14 @@
 package org.apache.flex.utils
 {
 	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.geom.Rectangle
+	import org.apache.flex.geom.Rectangle;
+
+	COMPILE::JS 
+	{
+		import org.apache.flex.geom.Matrix;
+		import org.apache.flex.geom.Point;
+		import org.apache.flex.core.ITransformHost;
+	}
 	/**
 	 *  The SpriteUtils class is a collection of static functions that are useful
 	 *  for geometric operations on visible objects.
@@ -42,6 +49,7 @@ package org.apache.flex.utils
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
          *  @flexjsignorecoercion HTMLElement
+         *  @flexjsignorecoercion ITransformHost
 		 */
 		public static function getScreenBoundingRect(obj:IUIBase):Rectangle
 		{
@@ -53,9 +61,21 @@ package org.apache.flex.utils
 			COMPILE::JS
 			{
 				var r:Object = (obj.element as HTMLElement).getBoundingClientRect();
-				var bounds:Rectangle = new Rectangle(r.x, r.y, r.width, r.height);
+				var bounds:Rectangle = new Rectangle(r.left, r.top, r.right - r.left, r.bottom - r.top);
 				bounds.x -= window.pageXOffset;
 				bounds.y -= window.pageYOffset;
+				if (obj.element instanceof SVGElement)
+				{
+					var svgElement:Object = (obj as ITransformHost).transformElement as Object;
+					var sm:SVGMatrix = svgElement.getScreenCTM();
+					var m:Matrix = new Matrix(sm.a,sm.b,sm.c,sm.d,sm.e,sm.f);
+					var tl:Point = m.transformPoint(bounds.topLeft);
+					var br:Point = m.transformPoint(bounds.bottomRight);
+					bounds.top = tl.y;
+					bounds.left = tl.x;
+					bounds.bottom = br.y;
+					bounds.right = br.x;
+				}
 				return bounds;
 			}
 		}


Mime
View raw message