diff --git a/ui/app/app.go b/ui/app/app.go index cc580c0d..c159a117 100644 --- a/ui/app/app.go +++ b/ui/app/app.go @@ -134,6 +134,14 @@ func DataDir() (string, error) { return dataDir() } +// Main must be called from the a program's main function. +// Calling Main is necessary because some operating systems +// require control of the main thread of the program for +// running user interfaces. +func Main() { + main() +} + // Config implements the ui.Config interface. type Config struct { // Device pixels per dp. diff --git a/ui/app/doc.go b/ui/app/doc.go new file mode 100644 index 00000000..f7a9b4ec --- /dev/null +++ b/ui/app/doc.go @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: Unlicense OR MIT + +/* +Package app provides a platform-independent interface to operating system +functionality for running graphical user interfaces. + +*/ +package app diff --git a/ui/app/os_android.go b/ui/app/os_android.go index b4c7d308..3f8a8f6c 100644 --- a/ui/app/os_android.go +++ b/ui/app/os_android.go @@ -419,7 +419,7 @@ func (w *window) showTextInput(show bool) { }) } -func Main() { +func main() { } func createWindow(window *Window, opts *WindowOptions) error { diff --git a/ui/app/os_ios.go b/ui/app/os_ios.go index 0736e15e..93f62ece 100644 --- a/ui/app/os_ios.go +++ b/ui/app/os_ios.go @@ -251,5 +251,5 @@ func createWindow(win *Window, opts *WindowOptions) error { return <-mainWindow.errs } -func Main() { +func main() { } diff --git a/ui/app/os_js.go b/ui/app/os_js.go index bf9e1d17..a1814ab3 100644 --- a/ui/app/os_js.go +++ b/ui/app/os_js.go @@ -374,7 +374,7 @@ func (w *window) config() (int, int, float32, Config) { } } -func Main() { +func main() { <-mainDone } diff --git a/ui/app/os_macos.go b/ui/app/os_macos.go index ec7dbd93..f283516e 100644 --- a/ui/app/os_macos.go +++ b/ui/app/os_macos.go @@ -271,7 +271,7 @@ func createWindow(win *Window, opts *WindowOptions) error { return <-mainWindow.errs } -func Main() { +func main() { wopts := <-mainWindow.out view := viewFactory() if view == 0 { diff --git a/ui/app/os_wayland.go b/ui/app/os_wayland.go index 6a72ca88..131934cc 100644 --- a/ui/app/os_wayland.go +++ b/ui/app/os_wayland.go @@ -152,7 +152,7 @@ var ( _XKB_MOD_NAME_SHIFT = []byte("Shift\x00") ) -func Main() { +func main() { <-mainDone } diff --git a/ui/app/os_windows.go b/ui/app/os_windows.go index 0edd79e6..2fb5bd49 100644 --- a/ui/app/os_windows.go +++ b/ui/app/os_windows.go @@ -157,7 +157,7 @@ const _WM_REDRAW = _WM_USER + 0 var onceMu sync.Mutex var mainDone = make(chan struct{}) -func Main() { +func main() { <-mainDone }