summaryrefslogtreecommitdiff
path: root/stack.go
diff options
context:
space:
mode:
Diffstat (limited to 'stack.go')
-rw-r--r--stack.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/stack.go b/stack.go
index 269bee4..f66bc3d 100644
--- a/stack.go
+++ b/stack.go
@@ -50,6 +50,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 {
@@ -61,6 +64,9 @@ func (s *Stack) make(window *sysData) error {
}
func (s *Stack) setRect(x int, y int, width int, height int) error {
+ s.lock.Lock()
+ defer s.lock.Unlock()
+
var stretchywid, stretchyht int
if len(s.controls) == 0 { // do nothing if there's nothing to do
@@ -121,6 +127,9 @@ func (s *Stack) setRect(x int, y int, width int, height int) error {
// The preferred size of a Stack is the sum of the preferred sizes of non-stretchy controls + (the number of stretchy controls * the largest preferred size among all stretchy controls).
func (s *Stack) preferredSize() (width int, height int, err error) {
+ s.lock.Lock()
+ defer s.lock.Unlock()
+
max := func(a int, b int) int {
if a > b {
return a