internal/ui: bug fix: InitUnfocused option didn't work

Updates #2924
Closes #3099
This commit is contained in:
Hajime Hoshi 2024-09-14 17:28:35 +09:00
parent 99ffe09b63
commit e90f99bd4a

View File

@ -81,6 +81,8 @@ type userInterfaceImpl struct {
initWindowMaximized bool initWindowMaximized bool
initWindowMousePassthrough bool initWindowMousePassthrough bool
initUnfocused bool
// bufferOnceSwapped must be accessed from the main thread. // bufferOnceSwapped must be accessed from the main thread.
bufferOnceSwapped bool bufferOnceSwapped bool
updateOnceCalled bool updateOnceCalled bool
@ -1120,6 +1122,7 @@ func (u *UserInterface) initOnMainThread(options *RunOptions) error {
return err return err
} }
u.initUnfocused = options.InitUnfocused
focused := glfw.True focused := glfw.True
if options.InitUnfocused { if options.InitUnfocused {
focused = glfw.False focused = glfw.False
@ -1325,9 +1328,11 @@ func (u *UserInterface) update() (float64, float64, error) {
if err = u.window.Show(); err != nil { if err = u.window.Show(); err != nil {
return return
} }
if !u.initUnfocused {
if err = u.window.Focus(); err != nil { if err = u.window.Focus(); err != nil {
return return
} }
}
if runtime.GOOS == "darwin" || runtime.GOOS == "windows" { if runtime.GOOS == "darwin" || runtime.GOOS == "windows" {
return return