diff --git a/ui/panelcontainer.go b/ui/panelcontainer.go index 53cfb11..6323bc0 100755 --- a/ui/panelcontainer.go +++ b/ui/panelcontainer.go @@ -57,9 +57,13 @@ func (c *PanelContainer) DeleteSelected() Component { (*p).Right = nil } (*p).Kind = PanelKindSingle + + (*c.selected).SetFocused(false) // Unfocus item (*c.selected) = nil // Tell garbage collector to come pick up selected (being safe) c.selected = &p (*c.selected).UpdateSplits() + (*c.selected).SetFocused(c.focused) + return item } } @@ -80,8 +84,10 @@ func (c *PanelContainer) SplitSelected(kind SplitKind, item Component) { } (**c.selected).Kind = PanelKind(kind) (*c.selected).UpdateSplits() + (*c.selected).SetFocused(false) panel := (**c.selected).Left.(*Panel) // TODO: watch me... might be a bug lurking in a hidden copy here c.selected = &panel + (*c.selected).SetFocused(c.focused) } func (c *PanelContainer) GetSelected() Component { @@ -112,7 +118,7 @@ func (c *PanelContainer) Draw(s tcell.Screen) { func (c *PanelContainer) SetFocused(v bool) { c.focused = v - // TODO: update focused on selected children + (*c.selected).SetFocused(v) } func (c *PanelContainer) SetTheme(theme *Theme) { @@ -147,5 +153,5 @@ func (c *PanelContainer) SetSize(width, height int) { func (c *PanelContainer) HandleEvent(event tcell.Event) bool { // Call handle event on selected Panel - return false + return (*c.selected).HandleEvent(event) }