core: Clear mouse down flag even if there is no hovered object
This commit is contained in:
parent
a846d92d8c
commit
905f9d7ac6
|
@ -481,24 +481,30 @@ impl Player {
|
||||||
let mut is_mouse_down = self.is_mouse_down;
|
let mut is_mouse_down = self.is_mouse_down;
|
||||||
self.mutate_with_update_context(|avm, context| {
|
self.mutate_with_update_context(|avm, context| {
|
||||||
if let Some(node) = context.mouse_hovered_object {
|
if let Some(node) = context.mouse_hovered_object {
|
||||||
if !node.removed() {
|
if node.removed() {
|
||||||
|
context.mouse_hovered_object = None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
match event {
|
match event {
|
||||||
PlayerEvent::MouseDown { .. } => {
|
PlayerEvent::MouseDown { .. } => {
|
||||||
is_mouse_down = true;
|
is_mouse_down = true;
|
||||||
needs_render = true;
|
needs_render = true;
|
||||||
|
if let Some(node) = context.mouse_hovered_object {
|
||||||
node.handle_clip_event(avm, context, ClipEvent::Press);
|
node.handle_clip_event(avm, context, ClipEvent::Press);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PlayerEvent::MouseUp { .. } => {
|
PlayerEvent::MouseUp { .. } => {
|
||||||
is_mouse_down = false;
|
is_mouse_down = false;
|
||||||
needs_render = true;
|
needs_render = true;
|
||||||
|
if let Some(node) = context.mouse_hovered_object {
|
||||||
node.handle_clip_event(avm, context, ClipEvent::Release);
|
node.handle_clip_event(avm, context, ClipEvent::Release);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Self::run_actions(avm, context);
|
Self::run_actions(avm, context);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue