avm2: Dispatch mouseWheel event on mouse wheel

This commit is contained in:
Kamil Jarosz 2024-07-15 17:08:58 +02:00 committed by Nathan Adams
parent 582f5dbf12
commit 4ec36d5b3a
1 changed files with 10 additions and 5 deletions

View File

@ -1277,16 +1277,21 @@ impl Player {
if let PlayerEvent::MouseWheel { delta } = event {
self.mutate_with_update_context(|context| {
if let Some(over_object) = context.mouse_data.hovered {
let target = if let Some(over_object) = context.mouse_data.hovered {
if over_object.as_displayobject().movie().is_action_script_3()
|| !over_object.as_displayobject().avm1_removed()
{
over_object.handle_clip_event(context, ClipEvent::MouseWheel { delta });
Some(over_object)
} else {
None
}
} else {
context
.stage
.handle_clip_event(context, ClipEvent::MouseWheel { delta });
context.stage.as_interactive()
};
if let Some(target) = target {
let event = ClipEvent::MouseWheel { delta };
target.event_dispatch_to_avm2(context, event);
target.handle_clip_event(context, event);
}
});
}