func (w *windowImpl) Release() { w.mu.Lock() released := w.released w.released = true w.mu.Unlock() if released { return } render.FreePicture(w.s.xc, w.xp) xproto.FreeGC(w.s.xc, w.xg) xproto.DestroyWindow(w.s.xc, w.xw) w.pump.Release() }
func (w *windowImpl) Release() { w.mu.Lock() released := w.released w.released = true w.mu.Unlock() // TODO: set w.dead and call w.sendLifecycle, a la handling atomWMDeleteWindow? if released { return } render.FreePicture(w.s.xc, w.xp) xproto.FreeGC(w.s.xc, w.xg) xproto.DestroyWindow(w.s.xc, w.xw) }