mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
27 lines
490 B
Go
27 lines
490 B
Go
package client
|
|
|
|
import wlclient "github.com/AvengeMedia/DankMaterialShell/core/pkg/go-wayland/wayland/client"
|
|
|
|
func Roundtrip(display *wlclient.Display, ctx *wlclient.Context) error {
|
|
callback, err := display.Sync()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
done := make(chan struct{})
|
|
callback.SetDoneHandler(func(e wlclient.CallbackDoneEvent) {
|
|
close(done)
|
|
})
|
|
|
|
for {
|
|
select {
|
|
case <-done:
|
|
return nil
|
|
default:
|
|
if err := ctx.Dispatch(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
}
|