diff --git a/app/os_macos.go b/app/os_macos.go index cb27f942..427009ad 100644 --- a/app/os_macos.go +++ b/app/os_macos.go @@ -326,6 +326,7 @@ type window struct { cursor pointer.Cursor pointerBtns pointer.Buttons loop *eventLoop + initialized bool scale float32 config Config @@ -833,7 +834,9 @@ func (w *window) draw() { func (w *window) ProcessEvent(e event.Event) { w.w.ProcessEvent(e) - w.loop.FlushEvents() + if w.initialized { + w.loop.FlushEvents() + } } func (w *window) Event() event.Event { @@ -924,7 +927,6 @@ func newWindow(win *callbacks, options []Option) { } w.loop = newEventLoop(w.w, w.wakeup) win.SetDriver(w) - res <- struct{}{} if err := w.init(); err != nil { w.ProcessEvent(DestroyEvent{Err: err}) return @@ -942,6 +944,9 @@ func newWindow(win *callbacks, options []Option) { nextTopLeft = C.cascadeTopLeftFromPoint(window, nextTopLeft) // makeKeyAndOrderFront assumes ownership of our window reference. C.makeKeyAndOrderFront(window) + w.initialized = true + res <- struct{}{} + w.loop.FlushEvents() }) <-res }