diff --git a/CHANGELOG b/CHANGELOG index 6166bbc..e7d3365 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ v1.5.3 (WIP) - Document how to prevent screen artifacts when using SetBackgroundTransparent - Fix incorrect TabbedPanels colors +- Preserve order of panels when updating panel v1.5.2 (2020-12-04) - Handle input events before executing queued update functions diff --git a/panels.go b/panels.go index eb8c1bf..82b522a 100644 --- a/panels.go +++ b/panels.go @@ -75,13 +75,17 @@ func (p *Panels) AddPanel(name string, item Primitive, resize, visible bool) { p.Lock() defer p.Unlock() - for index, pg := range p.panels { + var added bool + for i, pg := range p.panels { if pg.Name == name { - p.panels = append(p.panels[:index], p.panels[index+1:]...) + p.panels[i] = &panel{Item: item, Name: name, Resize: resize, Visible: visible} + added = true break } } - p.panels = append(p.panels, &panel{Item: item, Name: name, Resize: resize, Visible: visible}) + if !added { + p.panels = append(p.panels, &panel{Item: item, Name: name, Resize: resize, Visible: visible}) + } if p.changed != nil { p.Unlock() p.changed()