diff options
Diffstat (limited to 'widget.go')
| -rw-r--r-- | widget.go | 34 |
1 files changed, 27 insertions, 7 deletions
@@ -65,12 +65,6 @@ func setupCtrlDownWidget() { } func (w *guiWidget) deleteView() { - /* - if w.v != nil { - w.v.Visible = false - return - } - */ // make sure the view isn't really there log.Log(NOW, "deleteView()", w.cuiName, w.WidgetType, w.node.WidgetId) me.baseGui.DeleteView(w.cuiName) @@ -82,6 +76,8 @@ func (w *guiWidget) IsCurrent() bool { return w.isCurrent } if w.node.WidgetType == widget.Window { + log.Log(NOW, "IsCurrent() found current window", w.cuiName, w.String()) + log.Log(NOW, "IsCurrent() window w.isCurrent =", w.isCurrent) return w.isCurrent } if w.node.WidgetType == widget.Root { @@ -106,9 +102,33 @@ func (tk *guiWidget) Visible() bool { } func (tk *guiWidget) Show() { - if tk.IsCurrent() { + // always should the dropdown widget + if tk == me.dropdownV { + me.dropdownV.showView() + return + } + // if this isn't in the binary tree + // it's some internal widget so always display those + if tk.node == nil { tk.showView() + return + } + + // if the widget is not in the current displayed windo + // then ignore it + log.Log(NOW, "Show() tk =", tk.cuiName, tk.String()) + log.Log(NOW, "Show() tk.IsCurrent() returned", tk.IsCurrent()) + if ! tk.IsCurrent() { + log.Log(NOW, "Show() NOT drawing", tk.cuiName, tk.String()) + return + } + log.Log(NOW, "Show() drawing", tk.cuiName, tk.String()) + + // finally, check if the widget State is hidden or not + if tk.node.State.Hidden { + // don't display hidden widgets } else { + tk.showView() } } |
