mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
Bug 991899 part 1 - Add unprefixed API for PointerLock. r=smaug
MozReview-Commit-ID: 3af2D9IWI1Q --HG-- extra : source : 527777bea747fb8ab363960e41b0a1ddb26d7749
This commit is contained in:
parent
97b4a5d8c7
commit
b83b9e7406
@ -3298,7 +3298,7 @@ Element::RequestFullscreen(JSContext* aCx, JS::Handle<JS::Value> aOptions,
|
||||
}
|
||||
|
||||
void
|
||||
Element::MozRequestPointerLock()
|
||||
Element::RequestPointerLock()
|
||||
{
|
||||
OwnerDoc()->RequestPointerLock(this);
|
||||
}
|
||||
|
@ -751,7 +751,7 @@ public:
|
||||
// aCx == nullptr is allowed only if aOptions.isNullOrUndefined()
|
||||
void RequestFullscreen(JSContext* aCx, JS::Handle<JS::Value> aOptions,
|
||||
ErrorResult& aError);
|
||||
void MozRequestPointerLock();
|
||||
void RequestPointerLock();
|
||||
Attr* GetAttributeNode(const nsAString& aName);
|
||||
already_AddRefed<Attr> SetAttributeNode(Attr& aNewAttr,
|
||||
ErrorResult& aError);
|
||||
@ -1848,7 +1848,7 @@ NS_IMETHOD MozRequestFullScreen(void) final override \
|
||||
} \
|
||||
NS_IMETHOD MozRequestPointerLock(void) final override \
|
||||
{ \
|
||||
Element::MozRequestPointerLock(); \
|
||||
Element::RequestPointerLock(); \
|
||||
return NS_OK; \
|
||||
} \
|
||||
using nsINode::QuerySelector; \
|
||||
|
@ -9383,7 +9383,7 @@ nsDocument::OnPageHide(bool aPersisted,
|
||||
SetImagesNeedAnimating(false);
|
||||
}
|
||||
|
||||
MozExitPointerLock();
|
||||
ExitPointerLock();
|
||||
|
||||
// Now send out a PageHide event.
|
||||
nsCOMPtr<EventTarget> target = aDispatchStartTarget;
|
||||
@ -12220,7 +12220,7 @@ DispatchPointerLockChange(nsIDocument* aTarget)
|
||||
|
||||
RefPtr<AsyncEventDispatcher> asyncDispatcher =
|
||||
new AsyncEventDispatcher(aTarget,
|
||||
NS_LITERAL_STRING("mozpointerlockchange"),
|
||||
NS_LITERAL_STRING("pointerlockchange"),
|
||||
true,
|
||||
false);
|
||||
asyncDispatcher->PostDOMEvent();
|
||||
@ -12235,7 +12235,7 @@ DispatchPointerLockError(nsIDocument* aTarget, const char* aMessage)
|
||||
|
||||
RefPtr<AsyncEventDispatcher> asyncDispatcher =
|
||||
new AsyncEventDispatcher(aTarget,
|
||||
NS_LITERAL_STRING("mozpointerlockerror"),
|
||||
NS_LITERAL_STRING("pointerlockerror"),
|
||||
true,
|
||||
false);
|
||||
asyncDispatcher->PostDOMEvent();
|
||||
@ -12501,21 +12501,21 @@ nsIDocument::UnlockPointer(nsIDocument* aDoc)
|
||||
NS_IMETHODIMP
|
||||
nsDocument::MozExitPointerLock()
|
||||
{
|
||||
nsIDocument::MozExitPointerLock();
|
||||
nsIDocument::ExitPointerLock();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsDocument::GetMozPointerLockElement(nsIDOMElement** aPointerLockedElement)
|
||||
{
|
||||
Element* el = nsIDocument::GetMozPointerLockElement();
|
||||
Element* el = nsIDocument::GetPointerLockElement();
|
||||
nsCOMPtr<nsIDOMElement> retval = do_QueryInterface(el);
|
||||
retval.forget(aPointerLockedElement);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
Element*
|
||||
nsIDocument::GetMozPointerLockElement()
|
||||
nsIDocument::GetPointerLockElement()
|
||||
{
|
||||
nsCOMPtr<Element> pointerLockedElement =
|
||||
do_QueryReferent(EventStateManager::sPointerLockedElement);
|
||||
|
@ -877,6 +877,8 @@ GK_ATOM(onpaste, "onpaste")
|
||||
GK_ATOM(onpendingchange, "onpendingchange")
|
||||
GK_ATOM(onpichange, "onpichange")
|
||||
GK_ATOM(onpicture, "onpicture")
|
||||
GK_ATOM(onpointerlockchange, "onpointerlockchange")
|
||||
GK_ATOM(onpointerlockerror, "onpointerlockerror")
|
||||
GK_ATOM(onpopuphidden, "onpopuphidden")
|
||||
GK_ATOM(onpopuphiding, "onpopuphiding")
|
||||
GK_ATOM(onpopupshowing, "onpopupshowing")
|
||||
@ -996,6 +998,8 @@ GK_ATOM(placeholder, "placeholder")
|
||||
GK_ATOM(plaintext, "plaintext")
|
||||
GK_ATOM(playbackrate, "playbackrate")
|
||||
GK_ATOM(pointSize, "point-size")
|
||||
GK_ATOM(pointerlockchange, "pointerlockchange")
|
||||
GK_ATOM(pointerlockerror, "pointerlockerror")
|
||||
GK_ATOM(poly, "poly")
|
||||
GK_ATOM(polygon, "polygon")
|
||||
GK_ATOM(popup, "popup")
|
||||
|
@ -2604,8 +2604,8 @@ public:
|
||||
return !!GetFullscreenElement();
|
||||
}
|
||||
void ExitFullscreen();
|
||||
Element* GetMozPointerLockElement();
|
||||
void MozExitPointerLock()
|
||||
Element* GetPointerLockElement();
|
||||
void ExitPointerLock()
|
||||
{
|
||||
UnlockPointer(this);
|
||||
}
|
||||
|
@ -1153,6 +1153,10 @@ EventListenerManager::GetLegacyEventMessage(EventMessage aEventMessage) const
|
||||
return eMozFullscreenChange;
|
||||
case eFullscreenError:
|
||||
return eMozFullscreenError;
|
||||
case ePointerLockChange:
|
||||
return eMozPointerLockChange;
|
||||
case ePointerLockError:
|
||||
return eMozPointerLockError;
|
||||
default:
|
||||
return aEventMessage;
|
||||
}
|
||||
|
@ -323,10 +323,18 @@ EVENT(mozfullscreenerror,
|
||||
EventNameType_HTML,
|
||||
eBasicEventClass)
|
||||
EVENT(mozpointerlockchange,
|
||||
ePointerLockChange,
|
||||
eMozPointerLockChange,
|
||||
EventNameType_HTML,
|
||||
eBasicEventClass)
|
||||
EVENT(mozpointerlockerror,
|
||||
eMozPointerLockError,
|
||||
EventNameType_HTML,
|
||||
eBasicEventClass)
|
||||
EVENT(pointerlockchange,
|
||||
ePointerLockChange,
|
||||
EventNameType_HTML,
|
||||
eBasicEventClass)
|
||||
EVENT(pointerlockerror,
|
||||
ePointerLockError,
|
||||
EventNameType_HTML,
|
||||
eBasicEventClass)
|
||||
|
@ -253,10 +253,19 @@ partial interface Document {
|
||||
attribute EventHandler onfullscreenerror;
|
||||
};
|
||||
|
||||
// http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html#extensions-to-the-document-interface
|
||||
// https://w3c.github.io/pointerlock/#extensions-to-the-document-interface
|
||||
// https://w3c.github.io/pointerlock/#extensions-to-the-documentorshadowroot-mixin
|
||||
partial interface Document {
|
||||
readonly attribute Element? mozPointerLockElement;
|
||||
void mozExitPointerLock ();
|
||||
readonly attribute Element? pointerLockElement;
|
||||
[BinaryName="pointerLockElement"]
|
||||
readonly attribute Element? mozPointerLockElement;
|
||||
void exitPointerLock();
|
||||
[BinaryName="exitPointerLock"]
|
||||
void mozExitPointerLock();
|
||||
|
||||
// Event handlers
|
||||
attribute EventHandler onpointerlockchange;
|
||||
attribute EventHandler onpointerlockerror;
|
||||
};
|
||||
|
||||
//http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/custom/index.html#dfn-document-register
|
||||
|
@ -130,15 +130,6 @@ interface Element : Node {
|
||||
|
||||
// Mozilla extensions
|
||||
|
||||
/**
|
||||
* Requests that this element be made the pointer-locked element, as per the DOM
|
||||
* pointer lock api.
|
||||
*
|
||||
* @see <http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html>
|
||||
*/
|
||||
[UnsafeInPrerendering]
|
||||
void mozRequestPointerLock();
|
||||
|
||||
// Obsolete methods.
|
||||
Attr? getAttributeNode(DOMString name);
|
||||
[Throws]
|
||||
@ -274,3 +265,11 @@ partial interface Element {
|
||||
[Throws, UnsafeInPrerendering, BinaryName="requestFullscreen"]
|
||||
void mozRequestFullScreen(optional any options);
|
||||
};
|
||||
|
||||
// https://w3c.github.io/pointerlock/#extensions-to-the-element-interface
|
||||
partial interface Element {
|
||||
[UnsafeInPrerendering]
|
||||
void requestPointerLock();
|
||||
[UnsafeInPrerendering, BinaryName="requestPointerLock"]
|
||||
void mozRequestPointerLock();
|
||||
};
|
||||
|
@ -388,6 +388,8 @@ NS_EVENT_MESSAGE(eTouchCancel)
|
||||
// Pointerlock DOM API
|
||||
NS_EVENT_MESSAGE(ePointerLockChange)
|
||||
NS_EVENT_MESSAGE(ePointerLockError)
|
||||
NS_EVENT_MESSAGE(eMozPointerLockChange)
|
||||
NS_EVENT_MESSAGE(eMozPointerLockError)
|
||||
|
||||
// eWheel is the event message of DOM wheel event.
|
||||
NS_EVENT_MESSAGE(eWheel)
|
||||
|
Loading…
Reference in New Issue
Block a user