diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-01-17 19:02:50 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-01-17 19:02:50 +0100 |
commit | f6ef8d8ca7ed96d699c28914fc590b0604520fd0 (patch) | |
tree | e139d0db8d13c4120c586d3d439ca9f4c7358216 | |
parent | a20daf64bfd581dc6f04c6c752bf2790d82aab6e (diff) | |
download | UXP-f6ef8d8ca7ed96d699c28914fc590b0604520fd0.tar UXP-f6ef8d8ca7ed96d699c28914fc590b0604520fd0.tar.gz UXP-f6ef8d8ca7ed96d699c28914fc590b0604520fd0.tar.lz UXP-f6ef8d8ca7ed96d699c28914fc590b0604520fd0.tar.xz UXP-f6ef8d8ca7ed96d699c28914fc590b0604520fd0.zip |
Add isIntersecting property to IntersectionObserverEntry.
Per updated spec.
This resolves the issue raised in #249.
-rw-r--r-- | dom/base/DOMIntersectionObserver.cpp | 1 | ||||
-rw-r--r-- | dom/base/DOMIntersectionObserver.h | 8 | ||||
-rw-r--r-- | dom/webidl/IntersectionObserver.webidl | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/dom/base/DOMIntersectionObserver.cpp b/dom/base/DOMIntersectionObserver.cpp index e7b3cd0da..0264a105e 100644 --- a/dom/base/DOMIntersectionObserver.cpp +++ b/dom/base/DOMIntersectionObserver.cpp @@ -482,6 +482,7 @@ DOMIntersectionObserver::QueueIntersectionObserverEntry(Element* aTarget, rootBounds.forget(), boundingClientRect.forget(), intersectionRect.forget(), + aIntersectionRect.isSome(), aTarget, aIntersectionRatio); mQueuedEntries.AppendElement(entry.forget()); } diff --git a/dom/base/DOMIntersectionObserver.h b/dom/base/DOMIntersectionObserver.h index 9c8ebf5b1..414f21482 100644 --- a/dom/base/DOMIntersectionObserver.h +++ b/dom/base/DOMIntersectionObserver.h @@ -30,6 +30,7 @@ public: RefPtr<DOMRect> aRootBounds, RefPtr<DOMRect> aBoundingClientRect, RefPtr<DOMRect> aIntersectionRect, + bool aIsIntersecting, Element* aTarget, double aIntersectionRatio) : mOwner(aOwner), @@ -37,6 +38,7 @@ public: mRootBounds(aRootBounds), mBoundingClientRect(aBoundingClientRect), mIntersectionRect(aIntersectionRect), + mIsIntersecting(aIsIntersecting), mTarget(aTarget), mIntersectionRatio(aIntersectionRatio) { @@ -74,6 +76,11 @@ public: return mIntersectionRect; } + bool IsIntersecting() + { + return mIsIntersecting; + } + double IntersectionRatio() { return mIntersectionRatio; @@ -90,6 +97,7 @@ protected: RefPtr<DOMRect> mRootBounds; RefPtr<DOMRect> mBoundingClientRect; RefPtr<DOMRect> mIntersectionRect; + bool mIsIntersecting; RefPtr<Element> mTarget; double mIntersectionRatio; }; diff --git a/dom/webidl/IntersectionObserver.webidl b/dom/webidl/IntersectionObserver.webidl index dbe8f428d..bc193ee8c 100644 --- a/dom/webidl/IntersectionObserver.webidl +++ b/dom/webidl/IntersectionObserver.webidl @@ -18,6 +18,8 @@ interface IntersectionObserverEntry { [Constant] readonly attribute DOMRectReadOnly intersectionRect; [Constant] + readonly attribute boolean isIntersecting; + [Constant] readonly attribute double intersectionRatio; [Constant] readonly attribute Element target; |