Bug 1381344: Use original target to determine if context node is remote. r?keeler
MozReview-Commit-ID: EQlRNgXkc8B
--- a/dom/xul/nsXULPopupListener.cpp
+++ b/dom/xul/nsXULPopupListener.cpp
@@ -133,18 +133,23 @@ nsXULPopupListener::HandleEvent(nsIDOMEv
return NS_ERROR_FAILURE;
}
}
nsCOMPtr<nsIContent> targetContent = do_QueryInterface(target);
if (!targetContent) {
return NS_OK;
}
- if (EventStateManager::IsRemoteTarget(targetContent)) {
- return NS_OK;
+
+ {
+ EventTarget* originalTarget = mouseEvent->AsEvent()->InternalDOMEvent()->GetOriginalTarget();
+ nsCOMPtr<nsIContent> content = do_QueryInterface(originalTarget);
+ if (content && EventStateManager::IsRemoteTarget(content)) {
+ return NS_OK;
+ }
}
bool preventDefault;
mouseEvent->AsEvent()->GetDefaultPrevented(&preventDefault);
if (preventDefault && targetNode && mIsContext) {
// Someone called preventDefault on a context menu.
// Let's make sure they are allowed to do so.
bool eventEnabled =