avm2: Parameterize mouse button in mouse_event()
This commit is contained in:
parent
d625c0a779
commit
7a52360965
|
@ -9,7 +9,7 @@ use crate::avm2::Error;
|
||||||
use crate::context::UpdateContext;
|
use crate::context::UpdateContext;
|
||||||
use crate::display_object::TDisplayObject;
|
use crate::display_object::TDisplayObject;
|
||||||
use crate::display_object::{DisplayObject, InteractiveObject, TInteractiveObject};
|
use crate::display_object::{DisplayObject, InteractiveObject, TInteractiveObject};
|
||||||
use crate::events::KeyCode;
|
use crate::events::{KeyCode, MouseButton};
|
||||||
use crate::string::AvmString;
|
use crate::string::AvmString;
|
||||||
use gc_arena::{Collect, GcCell, GcWeakCell, Mutation};
|
use gc_arena::{Collect, GcCell, GcWeakCell, Mutation};
|
||||||
use std::cell::{Ref, RefMut};
|
use std::cell::{Ref, RefMut};
|
||||||
|
@ -100,6 +100,7 @@ impl<'gc> EventObject<'gc> {
|
||||||
related_object: Option<InteractiveObject<'gc>>,
|
related_object: Option<InteractiveObject<'gc>>,
|
||||||
delta: i32,
|
delta: i32,
|
||||||
bubbles: bool,
|
bubbles: bool,
|
||||||
|
button: MouseButton,
|
||||||
) -> Object<'gc>
|
) -> Object<'gc>
|
||||||
where
|
where
|
||||||
S: Into<AvmString<'gc>>,
|
S: Into<AvmString<'gc>>,
|
||||||
|
@ -137,7 +138,7 @@ impl<'gc> EventObject<'gc> {
|
||||||
// shiftKey
|
// shiftKey
|
||||||
activation.context.input.is_key_down(KeyCode::Shift).into(),
|
activation.context.input.is_key_down(KeyCode::Shift).into(),
|
||||||
// buttonDown
|
// buttonDown
|
||||||
activation.context.input.is_mouse_down().into(),
|
activation.context.input.is_key_down(button.into()).into(),
|
||||||
// delta
|
// delta
|
||||||
delta.into(),
|
delta.into(),
|
||||||
],
|
],
|
||||||
|
|
|
@ -18,7 +18,7 @@ use crate::display_object::stage::Stage;
|
||||||
use crate::display_object::{
|
use crate::display_object::{
|
||||||
DisplayObject, DisplayObjectBase, TDisplayObject, TDisplayObjectContainer,
|
DisplayObject, DisplayObjectBase, TDisplayObject, TDisplayObjectContainer,
|
||||||
};
|
};
|
||||||
use crate::events::{ClipEvent, ClipEventResult};
|
use crate::events::{ClipEvent, ClipEventResult, MouseButton};
|
||||||
use bitflags::bitflags;
|
use bitflags::bitflags;
|
||||||
use gc_arena::{Collect, Mutation};
|
use gc_arena::{Collect, Mutation};
|
||||||
use ruffle_macros::enum_trait_object;
|
use ruffle_macros::enum_trait_object;
|
||||||
|
@ -289,6 +289,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -303,6 +304,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -331,6 +333,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -344,6 +347,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -361,6 +365,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -377,6 +382,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
to,
|
to,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -393,8 +399,15 @@ pub trait TInteractiveObject<'gc>:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
let avm2_event =
|
let avm2_event = Avm2EventObject::mouse_event(
|
||||||
Avm2EventObject::mouse_event(&mut activation, "rollOut", tgt, to, 0, false);
|
&mut activation,
|
||||||
|
"rollOut",
|
||||||
|
tgt,
|
||||||
|
to,
|
||||||
|
0,
|
||||||
|
false,
|
||||||
|
MouseButton::Left,
|
||||||
|
);
|
||||||
|
|
||||||
if let Avm2Value::Object(avm2_target) = tgt.object2() {
|
if let Avm2Value::Object(avm2_target) = tgt.object2() {
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, avm2_target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, avm2_target);
|
||||||
|
@ -427,6 +440,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
from,
|
from,
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
if let Avm2Value::Object(avm2_target) = tgt.object2() {
|
if let Avm2Value::Object(avm2_target) = tgt.object2() {
|
||||||
|
@ -443,6 +457,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
from,
|
from,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -457,6 +472,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
delta.lines() as i32,
|
delta.lines() as i32,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
@ -471,6 +487,7 @@ pub trait TInteractiveObject<'gc>:
|
||||||
None,
|
None,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
MouseButton::Left,
|
||||||
);
|
);
|
||||||
|
|
||||||
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
Avm2::dispatch_event(&mut activation.context, avm2_event, target);
|
||||||
|
|
Loading…
Reference in New Issue