From 3f0f15b441c2ba95a5770902919c46d8851de997 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Sat, 10 May 2025 12:16:49 +0800 Subject: [PATCH] add _ready check to FixedOrbitCameraDelegate --- .../lib/src/input/src/delegate_input_handler.dart | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/thermion_dart/lib/src/input/src/delegate_input_handler.dart b/thermion_dart/lib/src/input/src/delegate_input_handler.dart index 56b7882f..fd41dc10 100644 --- a/thermion_dart/lib/src/input/src/delegate_input_handler.dart +++ b/thermion_dart/lib/src/input/src/delegate_input_handler.dart @@ -28,10 +28,16 @@ class DelegateInputHandler implements InputHandler { final List delegates; final bool batch; + + bool _ready = false; + bool _processing = false; DelegateInputHandler( {required this.viewer, required this.delegates, this.batch = true}) { FilamentApp.instance!.registerRequestFrameHook(process); + viewer.initialized.then((_) { + this._ready = true; + }); } factory DelegateInputHandler.fixedOrbit(ThermionViewer viewer, @@ -55,8 +61,6 @@ class DelegateInputHandler implements InputHandler { FreeFlightInputHandlerDelegateV2(viewer.view, sensitivity: sensitivity) ]); - bool _processing = false; - Future process() async { _processing = true; @@ -93,7 +97,8 @@ class DelegateInputHandler implements InputHandler { @override Future handle(InputEvent event) async { - if (_processing) { + + if (!_ready || _processing) { return; }