diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sheet/register.rs | 8 | ||||
| -rw-r--r-- | src/state/view/mod.rs | 9 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/sheet/register.rs b/src/sheet/register.rs index 82982e9..9f2493f 100644 --- a/src/sheet/register.rs +++ b/src/sheet/register.rs @@ -61,7 +61,13 @@ impl UserData for Register { }); methods.add_function("open", |lua, path: String| { - Ok(Loader::get().load_sheet(path, lua)) + if let Some(id) = Loader::get().load_sheet(path, lua) { + let luaref = SheetLuaRef::new(id); + if let Ok(ud) = lua.create_userdata(luaref) { + return Ok(Value::UserData(ud)); + } + } + Ok(Value::Nil) }); methods.add_function("get", |lua, id: SheetId| { diff --git a/src/state/view/mod.rs b/src/state/view/mod.rs index 41937a1..9ec303b 100644 --- a/src/state/view/mod.rs +++ b/src/state/view/mod.rs @@ -128,13 +128,8 @@ impl UserData for SheetViewState { } }); - fields.add_field_function_set("active", |_, _, sheet: Option<SheetLuaRef>| { - if let Some(r) = sheet { - cfg!().active_sheet = Some(r.id()) - } else { - cfg!().active_sheet = None - } - + fields.add_field_function_set("active", |_, _, sheet: SheetLuaRef| { + cfg!().set_active_sheet(Some(sheet.id())); Ok(()) }); |