diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-12 09:27:39 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-12 09:27:39 +0200 |
commit | 3749d61e1f7a59f5ec5067e560af1eb610c82015 (patch) | |
tree | 73dc228333948738bbe02976cacca8cd382bc978 /Source/WebCore/page/PointerLockController.cpp | |
parent | b32b4dcd9a51ab8de6afc53d9e17f8707e1f7a5e (diff) | |
download | qtwebkit-3749d61e1f7a59f5ec5067e560af1eb610c82015.tar.gz |
Imported WebKit commit a77350243e054f3460d1137301d8b3faee3d2052 (http://svn.webkit.org/repository/webkit/trunk@125365)
New snapshot with build fixes for latest API changes in Qt and all WK1 Win MSVC fixes upstream
Diffstat (limited to 'Source/WebCore/page/PointerLockController.cpp')
-rw-r--r-- | Source/WebCore/page/PointerLockController.cpp | 69 |
1 files changed, 10 insertions, 59 deletions
diff --git a/Source/WebCore/page/PointerLockController.cpp b/Source/WebCore/page/PointerLockController.cpp index abbfc80f4..ad7960962 100644 --- a/Source/WebCore/page/PointerLockController.cpp +++ b/Source/WebCore/page/PointerLockController.cpp @@ -46,40 +46,25 @@ PassOwnPtr<PointerLockController> PointerLockController::create(Page* page) return adoptPtr(new PointerLockController(page)); } -void PointerLockController::requestPointerLock(Element* target, PassRefPtr<VoidCallback> successCallback, PassRefPtr<VoidCallback> failureCallback) +void PointerLockController::requestPointerLock(Element* target) { - if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock) { + if (!target || !target->inDocument() || m_documentOfRemovedElementWhileWaitingForUnlock + || target->document()->isSandboxed(SandboxPointerLock)) { enqueueEvent(eventNames().webkitpointerlockerrorEvent, target); return; } if (m_element) { - // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - enqueueEvent(eventNames().webkitpointerlockchangeEvent, target); - if (m_element->document() != target->document()) - enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get()); - - // FIXME: Remove callback usage, keep assignment of m_element = target. (https://bugs.webkit.org/show_bug.cgi?id=84402) - if (m_element == target) { - if (successCallback) - successCallback->handleEvent(); - } else { - didLosePointerLock(false); - m_element = target; - if (successCallback) - successCallback->handleEvent(); + if (m_element->document() != target->document()) { + enqueueEvent(eventNames().webkitpointerlockerrorEvent, target); + return; } + enqueueEvent(eventNames().webkitpointerlockchangeEvent, target); + m_element = target; } else if (m_page->chrome()->client()->requestPointerLock()) { m_element = target; - m_successCallback = successCallback; - m_failureCallback = failureCallback; } else { - // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) enqueueEvent(eventNames().webkitpointerlockerrorEvent, target); - - // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - if (failureCallback) - failureCallback->handleEvent(); } } @@ -107,11 +92,6 @@ void PointerLockController::documentDetached(Document* document) } } -bool PointerLockController::isLocked() -{ - return m_page->chrome()->client()->isPointerLocked(); -} - Element* PointerLockController::element() const { return m_element.get(); @@ -119,49 +99,20 @@ Element* PointerLockController::element() const void PointerLockController::didAcquirePointerLock() { - // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get()); - - // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - RefPtr<Element> elementToNotify(m_element); - RefPtr<VoidCallback> callbackToIssue(m_successCallback); - m_successCallback = 0; - m_failureCallback = 0; - - if (callbackToIssue && elementToNotify && elementToNotify->document()->frame()) - callbackToIssue->handleEvent(); } void PointerLockController::didNotAcquirePointerLock() { - // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) enqueueEvent(eventNames().webkitpointerlockerrorEvent, m_element.get()); - - // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - RefPtr<Element> elementToNotify(m_element); - RefPtr<VoidCallback> callbackToIssue(m_failureCallback); m_element = 0; - m_successCallback = 0; - m_failureCallback = 0; - - if (callbackToIssue && elementToNotify && elementToNotify->document()->frame()) - callbackToIssue->handleEvent(); } -void PointerLockController::didLosePointerLock(bool sendChangeEvent) +void PointerLockController::didLosePointerLock() { - // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - if (sendChangeEvent) - enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element ? m_element->document() : m_documentOfRemovedElementWhileWaitingForUnlock.get()); - - // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) - RefPtr<Element> elementToNotify(m_element); + enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element ? m_element->document() : m_documentOfRemovedElementWhileWaitingForUnlock.get()); m_element = 0; m_documentOfRemovedElementWhileWaitingForUnlock = 0; - m_successCallback = 0; - m_failureCallback = 0; - if (elementToNotify && elementToNotify->document()->frame()) - elementToNotify->dispatchEvent(Event::create(eventNames().webkitpointerlocklostEvent, true, false)); } void PointerLockController::dispatchLockedMouseEvent(const PlatformMouseEvent& event, const AtomicString& eventType) |