diff --git a/plugin.go b/plugin.go index 774b85d..c8bd88c 100644 --- a/plugin.go +++ b/plugin.go @@ -34,6 +34,9 @@ func action(a widget.Action) { } else { w.setColor(&colorDisabled) } + if w.hidden { + w.SetVisible(false) + } } else { // this is done to protect the plugin being 'refreshed' with the // widget binary tree. TODO: find a way to keep them in sync @@ -41,6 +44,7 @@ func action(a widget.Action) { a.WidgetId, a.ActionType, a.WidgetType, a.ProgName) } case widget.Show: + w.node.State.Hidden = false if w.Visible() { // widget was already shown } else { @@ -49,6 +53,9 @@ func action(a widget.Action) { } w.showView() case widget.Hide: + w.node.State.Hidden = true + log.Log(NOW, "HIDE HERE. a.State.Hidden =", a.State.Hidden) + log.Log(NOW, "HIDE HERE. w.hidden =", w.hidden) if w.Visible() { log.Log(INFO, "Setting Visible to false", a.ProgName) w.SetVisible(false) diff --git a/view.go b/view.go index 633eaa4..1a8dc92 100644 --- a/view.go +++ b/view.go @@ -62,6 +62,11 @@ func (w *guiWidget) showView() { } log.Log(INFO, "showView() labelN =", w.labelN) + if w.hidden { + w.SetVisible(false) + return + } + // if the gocui element doesn't exist, create it if w.v == nil { w.recreateView()