From 13d7a8d7606750b457811f42ba9cd783c01fccc3 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 15 Jul 2021 16:14:39 +0200 Subject: [PATCH] app: don't release GPU context when minimized Releasing the renderer is fine, but releasing the underlying context introduces flicker when restoring a Gio window on macOS. Signed-off-by: Elias Naur --- app/window.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/window.go b/app/window.go index 4305316f..35abdbff 100644 --- a/app/window.go +++ b/app/window.go @@ -144,9 +144,11 @@ func (w *Window) validateAndProcess(driver wm.Driver, frameStart time.Time, size } if w.loop == nil && !w.nocontext { var err error - w.ctx, err = driver.NewContext() - if err != nil { - return err + if w.ctx == nil { + w.ctx, err = driver.NewContext() + if err != nil { + return err + } } w.loop, err = newLoop(w.ctx) if err != nil { @@ -478,7 +480,10 @@ func (w *Window) run(opts *wm.Options) { case system.StageEvent: if w.loop != nil { if e2.Stage < system.StageRunning { - w.destroyGPU() + if w.loop != nil { + w.loop.Release() + w.loop = nil + } } else { w.refresh() }