summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-25 19:16:26 -0500
committerPietro Gagliardi <[email protected]>2014-02-25 19:16:26 -0500
commit69bff124a605996dc9a9b34d61bd101eb413d1c6 (patch)
treeb2ebe5067b65abec280342f1a9eebd31b13e540d
parenta23a0f10885d79e615b2c40b794d4e4fa99401ce (diff)
Lock Stack's mutex lock like with all other Controls.
-rw-r--r--stack.go9
-rw-r--r--todo.md1
2 files changed, 9 insertions, 1 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
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