From 19227080da161bc96e4cc8ed447059cefbca8a6a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 17 Mar 2014 20:42:36 -0400 Subject: Changed window resizes so that the actual Control.setRect() functions appended to an array of requests that the resize() function set all at once instead of having each done individually. This will be necessary for what I think will be a solution to the deadlocks. It doesn't work right now; I'm assuming it's allocating too much memory. I know how to fix this, but I'm committing what I have so far to be safe. --- stack.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'stack.go') diff --git a/stack.go b/stack.go index b37b935..2820ef7 100644 --- a/stack.go +++ b/stack.go @@ -77,7 +77,7 @@ func (s *Stack) make(window *sysData) error { return nil } -func (s *Stack) setRect(x int, y int, width int, height int, winheight int) error { +func (s *Stack) setRect(x int, y int, width int, height int) (rr []resizerequest) { var stretchywid, stretchyht int if len(s.controls) == 0 { // do nothing if there's nothing to do @@ -120,17 +120,14 @@ func (s *Stack) setRect(x int, y int, width int, height int, winheight int) erro } // 3) now actually place controls for i, c := range s.controls { - err := c.setRect(x, y, s.width[i], s.height[i], winheight) - if err != nil { - return fmt.Errorf("error setting size of control %d in Stack.setRect(): %v", i, err) - } + rr = append(rr, c.setRect(x, y, s.width[i], s.height[i])...) if s.orientation == horizontal { x += s.width[i] } else { y += s.height[i] } } - return nil + return rr } // 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). -- cgit v1.2.3