From 33155f7496a818a1ed83fe49cccb63be7842bc81 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 30 Jun 2014 09:57:44 -0400 Subject: Reverted everything back to the old API. --- stack.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'stack.go') diff --git a/stack.go b/stack.go index b421252..e8ce332 100644 --- a/stack.go +++ b/stack.go @@ -4,6 +4,7 @@ package ui import ( "fmt" + "sync" ) type orientation bool @@ -19,6 +20,7 @@ const ( // Any extra space at the end of a Stack is left blank. // Some controls may be marked as "stretchy": when the Window they are in changes size, stretchy controls resize to take up the remaining space after non-stretchy controls are laid out. If multiple controls are marked stretchy, they are alloted equal distribution of the remaining space. type Stack struct { + lock sync.Mutex created bool orientation orientation controls []Control @@ -49,6 +51,9 @@ func NewVerticalStack(controls ...Control) *Stack { // SetStretchy marks a control in a Stack as stretchy. This cannot be called once the Window containing the Stack has been created. // It panics if index is out of range. func (s *Stack) SetStretchy(index int) { + s.lock.Lock() + defer s.lock.Unlock() + if s.created { panic("call to Stack.SetStretchy() after Stack has been created") } @@ -59,6 +64,9 @@ func (s *Stack) SetStretchy(index int) { } func (s *Stack) make(window *sysData) error { + s.lock.Lock() + defer s.lock.Unlock() + for i, c := range s.controls { err := c.make(window) if err != nil { -- cgit v1.2.3