From 4af147be6f35e2bf39174a5db88148c7efdda9bd Mon Sep 17 00:00:00 2001 From: Hayden Hamilton Date: Thu, 28 May 2026 21:43:18 +0100 Subject: Don't fix X issues as events This change was made years ago. IDK why. I just remember there being an issue --- main.go | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index bc4e0d4..7d7b037 100644 --- a/main.go +++ b/main.go @@ -45,23 +45,8 @@ func main() { case s := <-signals: common.Error("%s\n", s) break mainloop - case e := <- drw.Events: - if e.Ev == nil && e.Err == nil { - common.Error("X connection clossed\n") - break mainloop - } - - if e.Err != nil { - common.Perror("X.WaitForEvents", e.Err) - continue - } - - // switch e.Ev.(type) { - // case xproto.DestroyNotifyEvent: - // Err <- fmt.Errorf("Window destroyed") - // return - // default: - // } + case <- drw.XClosed: + break mainloop case err := <-bspc.EvErr: common.Error("Couldn't read event: %s\n", err) break mainloop @@ -91,9 +76,22 @@ func main() { common.Error("Couldn't load bspwm state: %s\n", err) break mainloop case blocks = <- status.NewBlocks: - Redraw(state, blocks) + select { + case <- drw.XClosed: + break mainloop + default: + // Will hang if X is closed + Redraw(state, blocks) + } case state = <- bspc.NewState: - Redraw(state, blocks) + // Would've used a fallthrough, + // but go doesn't allow it + select { + case <- drw.XClosed: + break mainloop + default: + Redraw(state, blocks) + } } } -- cgit v1.2.3