summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sheet/register.rs8
-rw-r--r--src/state/view/mod.rs9
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(())
});