diff --git a/app/os_macos.go b/app/os_macos.go index 270db6a6..4c754d62 100644 --- a/app/os_macos.go +++ b/app/os_macos.go @@ -558,10 +558,14 @@ func newOSWindow() (*window, error) { view: view, scale: scale, } + done := make(chan struct{}) + setNeedsDisplay := func() { + C.setNeedsDisplay(w.view) + done <- struct{}{} + } dl, err := NewDisplayLink(func() { - w.runOnMain(func() { - C.setNeedsDisplay(w.view) - }) + w.runOnMain(setNeedsDisplay) + <-done }) w.displayLink = dl if err != nil {