From 69bff124a605996dc9a9b34d61bd101eb413d1c6 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 25 Feb 2014 19:16:26 -0500 Subject: [PATCH] Lock Stack's mutex lock like with all other Controls. --- stack.go | 9 +++++++++ todo.md | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) 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 diff --git a/todo.md b/todo.md index 5e19768..2792971 100644 --- a/todo.md +++ b/todo.md @@ -25,7 +25,6 @@ so I don't forget: important things: - there's no GTK+ error handling whatsoever; we need to figure out how it works - make sure GTK+ documentation point differences don't matter -- lock setRect() and preferredSize() in all Controls (including Stack) - button sizes and LineEdit sizes on Windows seem too big; Comboboxes have margins - sometimes the size of the drop-down part of a Combobox becomes 0 or 1 or some other impossibly small value on Windows