core: Clear drag if object is removed while dragging

This commit is contained in:
Mike Welsh 2019-12-21 16:03:12 -08:00
parent 531e4d640d
commit d7df15989f
1 changed files with 18 additions and 13 deletions

View File

@ -392,6 +392,10 @@ impl<Audio: AudioBackend, Renderer: RenderBackend, Navigator: NavigatorBackend>
let mouse_pos = self.mouse_pos;
self.mutate_with_update_context(|_avm, context| {
if let Some(drag_object) = &mut context.drag_object {
if drag_object.display_object.removed() {
// Be sure to clear the drag if the object was removed.
*context.drag_object = None;
} else {
let mut drag_point = (
mouse_pos.0 + drag_object.offset.0,
mouse_pos.1 + drag_object.offset.1,
@ -407,6 +411,7 @@ impl<Audio: AudioBackend, Renderer: RenderBackend, Navigator: NavigatorBackend>
.display_object
.set_y(context.gc_context, drag_point.1.to_pixels());
}
}
});
}