core: Pass UpdateContext to ContextMenuState::build_builtin_items
This simplifies code, as we do not have to access the same elements over and over.
This commit is contained in:
parent
2955add845
commit
1f3c230691
|
@ -186,11 +186,7 @@ pub fn make_context_menu_state<'gc>(
|
|||
}
|
||||
}
|
||||
|
||||
result.build_builtin_items(
|
||||
builtin_items,
|
||||
activation.context.stage,
|
||||
&activation.context.ui.language(),
|
||||
);
|
||||
result.build_builtin_items(builtin_items, &mut activation.context);
|
||||
|
||||
if let Some(menu) = menu {
|
||||
if let Ok(Value::Object(custom_items)) = menu.get("customItems", activation) {
|
||||
|
|
|
@ -66,11 +66,7 @@ pub fn make_context_menu_state<'gc>(
|
|||
}
|
||||
}
|
||||
|
||||
result.build_builtin_items(
|
||||
builtin_items,
|
||||
activation.context.stage,
|
||||
&activation.context.ui.language(),
|
||||
);
|
||||
result.build_builtin_items(builtin_items, &mut activation.context);
|
||||
|
||||
if let Some(menu) = menu {
|
||||
if let Ok(Value::Object(custom_items)) = menu.get_public_property("customItems", activation)
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
use crate::avm1;
|
||||
use crate::avm2;
|
||||
use crate::context::UpdateContext;
|
||||
use crate::display_object::Stage;
|
||||
use crate::display_object::TDisplayObject;
|
||||
use crate::i18n::core_text;
|
||||
use fluent_templates::LanguageIdentifier;
|
||||
use gc_arena::Collect;
|
||||
use ruffle_render::quality::StageQuality;
|
||||
use serde::Serialize;
|
||||
|
@ -26,22 +26,28 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
pub fn new() -> Self {
|
||||
Self::default()
|
||||
}
|
||||
|
||||
pub fn push(&mut self, item: ContextMenuItem, callback: ContextMenuCallback<'gc>) {
|
||||
self.info.push(item);
|
||||
self.callbacks.push(callback);
|
||||
}
|
||||
|
||||
pub fn info(&self) -> &Vec<ContextMenuItem> {
|
||||
&self.info
|
||||
}
|
||||
|
||||
pub fn callback(&self, index: usize) -> &ContextMenuCallback<'gc> {
|
||||
&self.callbacks[index]
|
||||
}
|
||||
|
||||
pub fn build_builtin_items(
|
||||
&mut self,
|
||||
item_flags: BuiltInItemFlags,
|
||||
stage: Stage<'gc>,
|
||||
language: &LanguageIdentifier,
|
||||
context: &mut UpdateContext<'_, 'gc>,
|
||||
) {
|
||||
let stage = context.stage;
|
||||
let language = &context.ui.language();
|
||||
|
||||
let Some(root_mc) = stage.root_clip().and_then(|c| c.as_movie_clip()) else {
|
||||
return;
|
||||
};
|
||||
|
|
|
@ -602,7 +602,7 @@ impl Player {
|
|||
// no AVM1 or AVM2 object - so just prepare the builtin items
|
||||
let mut menu = ContextMenuState::new();
|
||||
let builtin_items = BuiltInItemFlags::for_stage(context.stage);
|
||||
menu.build_builtin_items(builtin_items, context.stage, &context.ui.language());
|
||||
menu.build_builtin_items(builtin_items, context);
|
||||
menu
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue