From a400ec666641893142b5f89ff6f55b90ccb26359 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 13 Feb 2014 11:42:21 -0500 Subject: [PATCH] Fixed the resizing deadlock. --- stdwndclass_windows.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/stdwndclass_windows.go b/stdwndclass_windows.go index 2824746..276fdc6 100644 --- a/stdwndclass_windows.go +++ b/stdwndclass_windows.go @@ -51,10 +51,13 @@ func stdWndProc(s *sysData) func(hwnd _HWND, uMsg uint32, wParam _WPARAM, lParam if r1 == 0 { panic("GetClientRect failed: " + err.Error()) } - err = s.resize(int(r.Left), int(r.Top), int(r.Right), int(r.Bottom)) - if err != nil { - panic("child resize failed: " + err.Error()) - } + // run the resize in a goroutine, since the WndProc is being run on uitask + go func() { + err = s.resize(int(r.Left), int(r.Top), int(r.Right), int(r.Bottom)) + if err != nil { + panic("child resize failed: " + err.Error()) + } + }() } return 0 case _WM_CLOSE: