diff --git a/app/window.go b/app/window.go index 70f6a359..09fc8dae 100644 --- a/app/window.go +++ b/app/window.go @@ -41,7 +41,8 @@ type Option func(unit.Metric, *Config) // // More than one Window is not supported on iOS, Android, WebAssembly. type Window struct { - initialOpts []Option + initialOpts []Option + initialActions []system.Action ctx context gpu gpu.GPU @@ -727,6 +728,10 @@ func (w *Window) init() { w.imeState.compose = key.Range{Start: -1, End: -1} w.semantic.ids = make(map[input.SemanticID]input.SemanticNode) newWindow(&callbacks{w}, options) + for _, acts := range w.initialActions { + w.Perform(acts) + } + w.initialActions = nil } func (w *Window) updateCursor() { @@ -826,6 +831,10 @@ func (w *Window) Perform(actions system.Action) { if acts == 0 { return } + if w.basic == nil { + w.initialActions = append(w.initialActions, acts) + return + } w.Run(func() { w.driver.Perform(actions) })