diff --git a/toolkit/gocui/add.go b/toolkit/gocui/add.go index c649da5..3020c83 100644 --- a/toolkit/gocui/add.go +++ b/toolkit/gocui/add.go @@ -80,6 +80,9 @@ func (w *cuiWidget) addWidget() { default: w.startW = w.parent.startW w.startH = w.parent.startH + if w.IsCurrent() { + w.updateCurrent() + } } w.showWidgetPlacement(logInfo, "addWidget()") } diff --git a/toolkit/gocui/click.go b/toolkit/gocui/click.go index f0f325e..1da32e9 100644 --- a/toolkit/gocui/click.go +++ b/toolkit/gocui/click.go @@ -25,6 +25,28 @@ func updateCurrentTabs() { me.rootNode.redoTabs(true) } +// when adding a new widget, this will update the display +// of the current widgets if that widget is supposed +// to be in current display +func (w *cuiWidget) updateCurrent() { + if w.widgetType == toolkit.Tab { + if w.IsCurrent() { + setCurrentTab(w) + } + return + } + if w.widgetType == toolkit.Window { + if w.IsCurrent() { + setCurrentWindow(w) + } + return + } + if w.widgetType == toolkit.Root { + return + } + w.parent.updateCurrent() +} + // shows the widgets in a window func setCurrentWindow(w *cuiWidget) { if w.widgetType != toolkit.Window {