From 0595135d9a259f7c54a361f0df6a6f7cb830a076 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 17 Feb 2014 01:40:53 -0500 Subject: Fixed the GTK+ crashes (I think) by making resizes synchronous. Since all control resizes happen on the UI thread anyway, we don't need to dispatch back; just call the resizing functions directly. Windows gets this fix too for consistency (and also because it gets rid of the only asynchronous oddity in the system). --- sysdata_windows.go | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'sysdata_windows.go') diff --git a/sysdata_windows.go b/sysdata_windows.go index 7a5abae..326db06 100644 --- a/sysdata_windows.go +++ b/sysdata_windows.go @@ -226,23 +226,15 @@ func (s *sysData) setText(text string) error { } func (s *sysData) setRect(x int, y int, width int, height int) error { - ret := make(chan uiret) - defer close(ret) - uitask <- &uimsg{ - call: _moveWindow, - p: []uintptr{ - uintptr(s.hwnd), - uintptr(x), - uintptr(y), - uintptr(width), - uintptr(height), - uintptr(_TRUE), - }, - ret: ret, - } - r := <-ret - if r.ret == 0 { // failure - return fmt.Errorf("error setting window/control rect: %v", r.err) + r1, _, err := _moveWindow.Call( + uintptr(s.hwnd), + uintptr(x), + uintptr(y), + uintptr(width), + uintptr(height), + uintptr(_TRUE)) + if r1 == 0 { // failure + return fmt.Errorf("error setting window/control rect: %v", err) } return nil } -- cgit v1.2.3