From dc329ed18c27c3b7d0467b5fc131438f41ece678 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 2 Mar 2025 18:04:08 -0600 Subject: can refresh manually --- init.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'init.go') diff --git a/init.go b/init.go index ef29827..ad1c1ee 100644 --- a/init.go +++ b/init.go @@ -197,12 +197,6 @@ func main() { // this hack is to wait for the application to send something // before trying to do anything. todo: rethink this someday func waitOK() { - defer func() { - if r := recover(); r != nil { - fmt.Fprintln(outf, "INIT PLUGIN recovered in r", r) - return - } - }() for { if me.ok { return @@ -238,12 +232,24 @@ func refreshGocui() { }() var lastRefresh time.Time lastRefresh = time.Now() + me.refresh = false for { time.Sleep(100 * time.Millisecond) // log.Info("refresh checking ok") if !me.ok { continue } + + // redraw the windows if something has changed + if time.Since(lastRefresh) > 1000*time.Millisecond { + if me.refresh { + log.Info("refresh triggered") + me.newWindowTrigger <- me.treeRoot.TK.(*guiWidget) + me.refresh = false + } + } + + // this code updates the clock if time.Since(lastRefresh) > 1000*time.Millisecond { // artificially pause clock while dragging. // this is a reminder to make this refresh code smarter @@ -289,9 +295,9 @@ func newWindowTrigger() { select { case tk := <-me.newWindowTrigger: // log.Log(NOW, "newWindowTrigger() got new window", tk.cuiName) - time.Sleep(200 * time.Millisecond) + // time.Sleep(200 * time.Millisecond) waitOK() - time.Sleep(200 * time.Millisecond) + // time.Sleep(200 * time.Millisecond) redoWindows(me.FirstWindowW, me.FirstWindowH) me.firstWindowOk = true if !me.stdout.init { -- cgit v1.2.3