author | Stone Shih <sshih@mozilla.com> |
Tue, 29 Nov 2016 14:07:12 +0800 | |
changeset 326077 | 42954e822c47f7ab9107279fb05db56f459e41cf |
parent 326076 | f23d48708a72f63d7f27bcc37fd90a77adb31383 |
child 326078 | 0b69c1a656b339ee90fb391ae5c384482a850531 |
push id | 84875 |
push user | ryanvm@gmail.com |
push date | Fri, 16 Dec 2016 02:48:21 +0000 |
treeherder | mozilla-inbound@016b87fe9145 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smaug |
bugs | 1315245 |
milestone | 53.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/base/PresShell.cpp +++ b/layout/base/PresShell.cpp @@ -7391,17 +7391,21 @@ PresShell::HandleEvent(nsIFrame* aFrame, nsCOMPtr<nsPIDOMWindowOuter> window = GetFocusedDOMWindowInOurWindow(); nsCOMPtr<nsIDocument> retargetEventDoc = window ? window->GetExtantDoc() : nullptr; nsCOMPtr<nsIPresShell> presShell = retargetEventDoc ? retargetEventDoc->GetShell() : nullptr; RefPtr<AccessibleCaretEventHub> eventHub = presShell ? presShell->GetAccessibleCaretEventHub() : nullptr; - if (eventHub) { + if (eventHub && *aEventStatus != nsEventStatus_eConsumeNoDefault) { + // Don't dispatch event to AccessibleCaretEventHub when the event status + // is nsEventStatus_eConsumeNoDefault. This might be happened when content + // preventDefault on the pointer events. In such case, we also call + // preventDefault on mouse events to stop default behaviors. *aEventStatus = eventHub->HandleEvent(aEvent); if (*aEventStatus == nsEventStatus_eConsumeNoDefault) { // If the event is consumed, cancel APZC panning by setting // mMultipleActionsPrevented. aEvent->mFlags.mMultipleActionsPrevented = true; return NS_OK; } }