From 6b5714d15d6baa900138668bdd5c041dd0c5bd32 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Fri, 19 Jul 2019 13:19:35 +0200 Subject: [PATCH] ui/app: (macOS) ignore asynchronous redraws to deleted windows Signed-off-by: Elias Naur --- ui/app/os_macos.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ui/app/os_macos.go b/ui/app/os_macos.go index 71830022..703bb425 100644 --- a/ui/app/os_macos.go +++ b/ui/app/os_macos.go @@ -98,8 +98,12 @@ func (w *window) setStage(stage Stage) { // Use a top level func for onFrameCallback to avoid // garbage from viewDo. func onFrameCmd(views viewMap, view C.CFTypeRef) { - w := views[view] - w.draw(false) + // CVDisplayLink does not run on the main thread, + // so we have to ignore requests to windows being + // deleted. + if w, exists := views[view]; exists { + w.draw(false) + } } //export gio_onFrameCallback