mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 970220 - Set relatedTarget property of all pointer events to null after invoking the setPointerCapture method on an element. r=smaug
This commit is contained in:
parent
50a37c8c05
commit
1a180b86fc
@ -3534,12 +3534,11 @@ EventStateManager::DispatchMouseOrPointerEvent(WidgetMouseEvent* aMouseEvent,
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsEventStatus status = nsEventStatus_eIgnore;
|
nsEventStatus status = nsEventStatus_eIgnore;
|
||||||
nsAutoPtr<WidgetPointerEvent> newPointerEvent;
|
nsAutoPtr<WidgetMouseEvent> event;
|
||||||
nsAutoPtr<WidgetMouseEvent> newMouseEvent;
|
|
||||||
WidgetMouseEvent* event = nullptr;
|
|
||||||
WidgetPointerEvent* sourcePointer = aMouseEvent->AsPointerEvent();
|
WidgetPointerEvent* sourcePointer = aMouseEvent->AsPointerEvent();
|
||||||
if (sourcePointer) {
|
if (sourcePointer) {
|
||||||
PROFILER_LABEL("Input", "DispatchPointerEvent");
|
PROFILER_LABEL("Input", "DispatchPointerEvent");
|
||||||
|
nsAutoPtr<WidgetPointerEvent> newPointerEvent;
|
||||||
newPointerEvent =
|
newPointerEvent =
|
||||||
new WidgetPointerEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
new WidgetPointerEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
||||||
aMouseEvent->widget);
|
aMouseEvent->widget);
|
||||||
@ -3548,20 +3547,22 @@ EventStateManager::DispatchMouseOrPointerEvent(WidgetMouseEvent* aMouseEvent,
|
|||||||
newPointerEvent->width = sourcePointer->width;
|
newPointerEvent->width = sourcePointer->width;
|
||||||
newPointerEvent->height = sourcePointer->height;
|
newPointerEvent->height = sourcePointer->height;
|
||||||
newPointerEvent->inputSource = sourcePointer->inputSource;
|
newPointerEvent->inputSource = sourcePointer->inputSource;
|
||||||
event = newPointerEvent.get();
|
newPointerEvent->relatedTarget = nsIPresShell::GetPointerCapturingContent(sourcePointer->pointerId)
|
||||||
|
? nullptr
|
||||||
|
: aRelatedContent;
|
||||||
|
event = newPointerEvent.forget();
|
||||||
} else {
|
} else {
|
||||||
PROFILER_LABEL("Input", "DispatchMouseEvent");
|
PROFILER_LABEL("Input", "DispatchMouseEvent");
|
||||||
newMouseEvent =
|
event =
|
||||||
new WidgetMouseEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
new WidgetMouseEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
||||||
aMouseEvent->widget, WidgetMouseEvent::eReal);
|
aMouseEvent->widget, WidgetMouseEvent::eReal);
|
||||||
event = newMouseEvent.get();
|
event->relatedTarget = aRelatedContent;
|
||||||
}
|
}
|
||||||
event->refPoint = aMouseEvent->refPoint;
|
event->refPoint = aMouseEvent->refPoint;
|
||||||
event->modifiers = aMouseEvent->modifiers;
|
event->modifiers = aMouseEvent->modifiers;
|
||||||
event->button = aMouseEvent->button;
|
event->button = aMouseEvent->button;
|
||||||
event->buttons = aMouseEvent->buttons;
|
event->buttons = aMouseEvent->buttons;
|
||||||
event->pluginEvent = aMouseEvent->pluginEvent;
|
event->pluginEvent = aMouseEvent->pluginEvent;
|
||||||
event->relatedTarget = aRelatedContent;
|
|
||||||
event->inputSource = aMouseEvent->inputSource;
|
event->inputSource = aMouseEvent->inputSource;
|
||||||
|
|
||||||
nsWeakFrame previousTarget = mCurrentTarget;
|
nsWeakFrame previousTarget = mCurrentTarget;
|
||||||
|
Loading…
Reference in New Issue
Block a user