diff options
Diffstat (limited to 'vendor/gioui.org/app/os_unix.go')
-rw-r--r-- | vendor/gioui.org/app/os_unix.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/gioui.org/app/os_unix.go b/vendor/gioui.org/app/os_unix.go new file mode 100644 index 0000000..ee831b3 --- /dev/null +++ b/vendor/gioui.org/app/os_unix.go @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: Unlicense OR MIT + +//go:build (linux && !android) || freebsd || openbsd +// +build linux,!android freebsd openbsd + +package app + +import ( + "errors" + "unsafe" +) + +type ViewEvent struct { + // Display is a pointer to the X11 Display created by XOpenDisplay. + Display unsafe.Pointer + // Window is the X11 window ID as returned by XCreateWindow. + Window uintptr +} + +func osMain() { + select {} +} + +type windowDriver func(*callbacks, []Option) error + +// Instead of creating files with build tags for each combination of wayland +/- x11 +// let each driver initialize these variables with their own version of createWindow. +var wlDriver, x11Driver windowDriver + +func newWindow(window *callbacks, options []Option) error { + var errFirst error + for _, d := range []windowDriver{x11Driver, wlDriver} { + if d == nil { + continue + } + err := d(window, options) + if err == nil { + return nil + } + if errFirst == nil { + errFirst = err + } + } + if errFirst != nil { + return errFirst + } + return errors.New("app: no window driver available") +} + +func (_ ViewEvent) ImplementsEvent() {} |