diff --git a/app/src/main/java/io/github/fate_grand_automata/runner/ScriptRunnerOverlay.kt b/app/src/main/java/io/github/fate_grand_automata/runner/ScriptRunnerOverlay.kt index cc1fb29c7..07c5598b8 100644 --- a/app/src/main/java/io/github/fate_grand_automata/runner/ScriptRunnerOverlay.kt +++ b/app/src/main/java/io/github/fate_grand_automata/runner/ScriptRunnerOverlay.kt @@ -35,6 +35,7 @@ class ScriptRunnerOverlay @Inject constructor( private val scriptComponentBuilder: ScriptComponentBuilder ) { private val layout: ComposeView + private val fakeView: FakedComposeView private val scriptCtrlBtnLayoutParams = WindowManager.LayoutParams().apply { type = overlayType @@ -53,7 +54,7 @@ class ScriptRunnerOverlay @Inject constructor( init { require(service is ScriptRunnerService) - layout = FakedComposeView(service) { + fakeView = FakedComposeView(service) { ScriptRunnerUI( state = uiStateHolder.uiState, prefsCore = prefsCore, @@ -62,7 +63,8 @@ class ScriptRunnerOverlay @Inject constructor( enabled = uiStateHolder.isPlayButtonEnabled, onDrag = { x, y -> onDrag(x, y) } ) - }.view + } + layout = fakeView.view // By default put the button on bottom-left corner val m = display.metrics @@ -117,6 +119,7 @@ class ScriptRunnerOverlay @Inject constructor( if (shown && Settings.canDrawOverlays(service)) { savePlayButtonLocation() + fakeView.close() windowManager.removeView(layout) highlightManager.hide()