You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/06/01 11:26:41 UTC

[royale-asjs] 01/02: global point should ignore window scrolling

This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit e5328655b9991fe44b92c61d1b18aa7a4cc104b5
Author: Harbs <ha...@in-tools.com>
AuthorDate: Tue May 29 12:25:55 2018 +0300

    global point should ignore window scrolling
---
 .../royale/org/apache/royale/utils/PointUtils.as   | 28 +++++++++++++---------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
index 264102c..f96e61c 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
@@ -71,18 +71,24 @@ package org.apache.royale.utils
                 var x:Number = pt.x;
                 var y:Number = pt.y;
                 var element:HTMLElement = local.element as HTMLElement;
+				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
+					var rect:Object = element.getBoundingClientRect();
+					x = x - rect.left - window.scrollX;
+					y = y - rect.top - window.scrollY;
+				} else { // for older browsers, but offsetParent is soon to be deprecated from chrome
 
-                do {
-                    x -= element.offsetLeft;
-                    y -= element.offsetTop;
-					if (local['parent'] !== undefined) {
-                        local = local.parent;
-                        element = local ? local.element as HTMLElement : null;
-                    } else {
-                        element = null;
+                    do {
+                        x -= element.offsetLeft;
+                        y -= element.offsetTop;
+                        if (local['parent'] !== undefined) {
+                            local = local.parent;
+                            element = local ? local.element as HTMLElement : null;
+                        } else {
+                            element = null;
+                        }
                     }
+                    while (element);
                 }
-                while (element);
                 return new org.apache.royale.geom.Point(x, y);
 
             }
@@ -119,8 +125,8 @@ package org.apache.royale.utils
 
 				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
 					var rect:Object = element.getBoundingClientRect();
-					x = rect.left + x;
-					y = rect.top + y;
+					x = rect.left + x + window.scrollX;
+					y = rect.top + y + window.scrollY;
 				} else { // for older browsers, but offsetParent is soon to be deprecated from from chrome
 	                do {
 	                    x += element.offsetLeft;

-- 
To stop receiving notification emails like this one, please contact
harbs@apache.org.

Re: [royale-asjs] 01/02: global point should ignore window scrolling

Posted by Harbs <ha...@gmail.com>.
Good point.

I’ll try to convert these to utility functions.

FWIW, The only difference is "- window.scrollX”.

I’m also pretty sure that the “older browser fallback” which is a major part of the code is not necessary. getBoundingClientRec() seems to be supported back through IE9.[1] We should probably clean out the “offset” code.

Harbs

[1]https://caniuse.com/#search=getBoundingClientRect <https://caniuse.com/#search=getBoundingClientRect>


> On Jun 1, 2018, at 7:22 PM, Alex Harui <ah...@adobe.com.INVALID> wrote:
> 
> For PAYG, should we have a version of the API that worries about window scrolling and one that doesn't?  If your app is designed not to scroll, I would think you wouldn't have to pay for this extra code?
> 
> -Alex
> 
> On 6/1/18, 4:26 AM, "harbs@apache.org <ma...@apache.org>" <harbs@apache.org <ma...@apache.org>> wrote:
> 
>    This is an automated email from the ASF dual-hosted git repository.
> 
>    harbs pushed a commit to branch develop
>    in repository https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7Caharui%40adobe.com%7C85aafe13907e4728298508d5c7b28caa%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636634492071894168&sdata=upjYhaXnXu4zo0rSp731%2ByM89crQMlK%2BothTSTXQlqA%3D&reserved=0 <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7Caharui%40adobe.com%7C85aafe13907e4728298508d5c7b28caa%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636634492071894168&sdata=upjYhaXnXu4zo0rSp731%2ByM89crQMlK%2BothTSTXQlqA%3D&reserved=0>
> 
>    commit e5328655b9991fe44b92c61d1b18aa7a4cc104b5
>    Author: Harbs <harbs@in-tools.com <ma...@in-tools.com>>
>    AuthorDate: Tue May 29 12:25:55 2018 +0300
> 
>        global point should ignore window scrolling
>    ---
>     .../royale/org/apache/royale/utils/PointUtils.as   | 28 +++++++++++++---------
>     1 file changed, 17 insertions(+), 11 deletions(-)
> 
>    diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
>    index 264102c..f96e61c 100644
>    --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
>    +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
>    @@ -71,18 +71,24 @@ package org.apache.royale.utils
>                     var x:Number = pt.x;
>                     var y:Number = pt.y;
>                     var element:HTMLElement = local.element as HTMLElement;
>    +				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
>    +					var rect:Object = element.getBoundingClientRect();
>    +					x = x - rect.left - window.scrollX;
>    +					y = y - rect.top - window.scrollY;
>    +				} else { // for older browsers, but offsetParent is soon to be deprecated from chrome
> 
>    -                do {
>    -                    x -= element.offsetLeft;
>    -                    y -= element.offsetTop;
>    -					if (local['parent'] !== undefined) {
>    -                        local = local.parent;
>    -                        element = local ? local.element as HTMLElement : null;
>    -                    } else {
>    -                        element = null;
>    +                    do {
>    +                        x -= element.offsetLeft;
>    +                        y -= element.offsetTop;
>    +                        if (local['parent'] !== undefined) {
>    +                            local = local.parent;
>    +                            element = local ? local.element as HTMLElement : null;
>    +                        } else {
>    +                            element = null;
>    +                        }
>                         }
>    +                    while (element);
>                     }
>    -                while (element);
>                     return new org.apache.royale.geom.Point(x, y);
> 
>                 }
>    @@ -119,8 +125,8 @@ package org.apache.royale.utils
> 
>     				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
>     					var rect:Object = element.getBoundingClientRect();
>    -					x = rect.left + x;
>    -					y = rect.top + y;
>    +					x = rect.left + x + window.scrollX;
>    +					y = rect.top + y + window.scrollY;
>     				} else { // for older browsers, but offsetParent is soon to be deprecated from from chrome
>     	                do {
>     	                    x += element.offsetLeft;
> 
>    -- 
>    To stop receiving notification emails like this one, please contact
>    harbs@apache.org <ma...@apache.org>.


Re: [royale-asjs] 01/02: global point should ignore window scrolling

Posted by Alex Harui <ah...@adobe.com.INVALID>.
For PAYG, should we have a version of the API that worries about window scrolling and one that doesn't?  If your app is designed not to scroll, I would think you wouldn't have to pay for this extra code?

-Alex

On 6/1/18, 4:26 AM, "harbs@apache.org" <ha...@apache.org> wrote:

    This is an automated email from the ASF dual-hosted git repository.
    
    harbs pushed a commit to branch develop
    in repository https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7Caharui%40adobe.com%7C85aafe13907e4728298508d5c7b28caa%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636634492071894168&sdata=upjYhaXnXu4zo0rSp731%2ByM89crQMlK%2BothTSTXQlqA%3D&reserved=0
    
    commit e5328655b9991fe44b92c61d1b18aa7a4cc104b5
    Author: Harbs <ha...@in-tools.com>
    AuthorDate: Tue May 29 12:25:55 2018 +0300
    
        global point should ignore window scrolling
    ---
     .../royale/org/apache/royale/utils/PointUtils.as   | 28 +++++++++++++---------
     1 file changed, 17 insertions(+), 11 deletions(-)
    
    diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
    index 264102c..f96e61c 100644
    --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
    +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/PointUtils.as
    @@ -71,18 +71,24 @@ package org.apache.royale.utils
                     var x:Number = pt.x;
                     var y:Number = pt.y;
                     var element:HTMLElement = local.element as HTMLElement;
    +				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
    +					var rect:Object = element.getBoundingClientRect();
    +					x = x - rect.left - window.scrollX;
    +					y = y - rect.top - window.scrollY;
    +				} else { // for older browsers, but offsetParent is soon to be deprecated from chrome
     
    -                do {
    -                    x -= element.offsetLeft;
    -                    y -= element.offsetTop;
    -					if (local['parent'] !== undefined) {
    -                        local = local.parent;
    -                        element = local ? local.element as HTMLElement : null;
    -                    } else {
    -                        element = null;
    +                    do {
    +                        x -= element.offsetLeft;
    +                        y -= element.offsetTop;
    +                        if (local['parent'] !== undefined) {
    +                            local = local.parent;
    +                            element = local ? local.element as HTMLElement : null;
    +                        } else {
    +                            element = null;
    +                        }
                         }
    +                    while (element);
                     }
    -                while (element);
                     return new org.apache.royale.geom.Point(x, y);
     
                 }
    @@ -119,8 +125,8 @@ package org.apache.royale.utils
     
     				if ( element.getBoundingClientRect ) {// TODO take scrollbar widths into account
     					var rect:Object = element.getBoundingClientRect();
    -					x = rect.left + x;
    -					y = rect.top + y;
    +					x = rect.left + x + window.scrollX;
    +					y = rect.top + y + window.scrollY;
     				} else { // for older browsers, but offsetParent is soon to be deprecated from from chrome
     	                do {
     	                    x += element.offsetLeft;
    
    -- 
    To stop receiving notification emails like this one, please contact
    harbs@apache.org.