From fa9ec36dbb05877a802ac6b5e2d358a2372f9a68 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 12 Feb 2025 17:00:32 -0600 Subject: [PATCH] initOnce() --- eventBindings.go | 5 +++++ init.go | 2 +- structs.go | 2 ++ treeInit.go | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/eventBindings.go b/eventBindings.go index c9a4a08..f78737c 100644 --- a/eventBindings.go +++ b/eventBindings.go @@ -5,6 +5,7 @@ package main import ( "syscall" + "time" "github.com/awesome-gocui/gocui" "go.wit.com/log" @@ -53,6 +54,10 @@ func registerHandlers(g *gocui.Gui) { g.SetKeybinding("", 'f', gocui.ModNone, theFind) // 'f' shows what is under your mouse g.SetKeybinding("", 'd', gocui.ModNone, theLetterD) // 'd' toggles on and off debugging buttons g.SetKeybinding("", 'q', gocui.ModNone, quit) // 'q' only exits gocui. plugin stays alive (?) + + time.Sleep(100 * time.Millisecond) + // tell 'tree' that we are okay to start talking to + me.myTree.InitOK() } // flips on 'super mouse' mode // this was awesome for debugging gocui. never remove this code. diff --git a/init.go b/init.go index 0c649a5..3adaf1b 100644 --- a/init.go +++ b/init.go @@ -30,7 +30,7 @@ func toolkitClose() { // sets defaults and establishes communication // to this toolkit from the wit/gui golang package -func init() { +func initPlugin() { log.Log(INFO, "Init() of awesome-gocui") // init the config struct default values diff --git a/structs.go b/structs.go index c8c688b..e9cfc8f 100644 --- a/structs.go +++ b/structs.go @@ -22,6 +22,8 @@ import ( "go.wit.com/toolkits/tree" ) +var initOnce sync.Once + // It's probably a terrible idea to call this 'me' // 2025 note: doesn't seem terrible to call this 'me' anymore. notsure. var me config diff --git a/treeInit.go b/treeInit.go index 40b5157..57db353 100644 --- a/treeInit.go +++ b/treeInit.go @@ -48,6 +48,7 @@ func Callback(guiCallback chan widget.Action) { } func PluginChannel() chan widget.Action { + initOnce.Do(initPlugin) return me.myTree.PluginChannel() }