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.