diff --git a/cmd/micro/initlua.go b/cmd/micro/initlua.go index 77349caa..7eac5637 100644 --- a/cmd/micro/initlua.go +++ b/cmd/micro/initlua.go @@ -48,7 +48,7 @@ func luaImportMicro() *lua.LTable { ulua.L.SetField(pkg, "InfoBar", luar.New(ulua.L, action.GetInfoBar)) ulua.L.SetField(pkg, "Log", luar.New(ulua.L, log.Println)) ulua.L.SetField(pkg, "SetStatusInfoFn", luar.New(ulua.L, display.SetStatusInfoFnLua)) - ulua.L.SetField(pkg, "CurPane", luar.New(ulua.L, func() action.Pane { + ulua.L.SetField(pkg, "CurPane", luar.New(ulua.L, func() *action.BufPane { return action.MainTab().CurPane() })) ulua.L.SetField(pkg, "CurTab", luar.New(ulua.L, action.MainTab)) diff --git a/internal/action/bufpane.go b/internal/action/bufpane.go index 084ccd62..e110eac7 100644 --- a/internal/action/bufpane.go +++ b/internal/action/bufpane.go @@ -169,6 +169,10 @@ func BufMapEvent(k Event, action string) { // if the action changed the current pane, update the reference h = MainTab().CurPane() success = innerSuccess + if h == nil { + // stop, in case the current pane is not a BufPane + break + } } return true } diff --git a/internal/action/termpane.go b/internal/action/termpane.go index bbb1e17b..f440f0cd 100644 --- a/internal/action/termpane.go +++ b/internal/action/termpane.go @@ -81,6 +81,10 @@ func (t *TermPane) SetID(i uint64) { t.id = i } +func (t *TermPane) Name() string { + return t.Terminal.Name() +} + func (t *TermPane) SetTab(tab *Tab) { t.tab = tab }