code: func Read(xu *xgbutil.XUtil, block bool) {
  	if block {
  		ev, err := xu.Conn().WaitForEvent()
  		if ev == nil && err == nil {
  			xgbutil.Logger.Fatal("BUG: Could not read an event or an error.")
  		}
  		Enqueue(xu, ev, err)
  	}
  
  	// Clean up anything that's in the queue
  	for {
  		ev, err := xu.Conn().PollForEvent()
  
  		// No events left...
  		if ev == nil && err == nil {
  			break
  		}
  
  		// We're good, queue it up
  		Enqueue(xu, ev, err)
  	}
  }
docs: // Read reads one or more events and queues them in XUtil.
  // If 'block' is True, then call 'WaitForEvent' before sucking up
  // all events that have been queued by XGB.