@@ -46,6 +46,7 @@ import androidx.compose.ui.window.window.toSize
4646import androidx.compose.ui.window.v2.Window
4747import androidx.compose.ui.window.v2.WindowBoundsProvider
4848import androidx.compose.ui.window.v2.WindowIntrinsicSize
49+ import androidx.compose.ui.window.v2.WindowPositionProvider
4950import androidx.compose.ui.window.v2.WindowSizeProvider
5051import androidx.compose.ui.window.v2.rememberWindowStateWithBounds
5152import androidx.compose.ui.window.v2.WindowState
@@ -65,6 +66,7 @@ import kotlin.test.assertNotNull
6566import kotlin.test.assertNull
6667import kotlin.test.assertTrue
6768import kotlin.time.Duration
69+ import kotlin.time.Duration.Companion.milliseconds
6870import kotlin.time.Duration.Companion.seconds
6971import kotlinx.coroutines.*
7072import org.junit.Assume.assumeFalse
@@ -664,20 +666,21 @@ class WindowTestV2 {
664666 lateinit var innerWindow: Window
665667 var showInnerWindow by mutableStateOf(false )
666668 val windowSize = DpSize (800 .dp, 800 .dp)
667- launchTestWindowV2Application(
668- state = WindowState (
669- initialBoundsProvider = WindowBoundsProvider (WindowSizeProvider .Fixed (windowSize))
670- ),
671- ) {
669+ val outerWindowState = WindowState (
670+ initialBoundsProvider = WindowBoundsProvider (WindowSizeProvider .Fixed (windowSize))
671+ )
672+ launchTestWindowV2Application(outerWindowState) {
672673 outerWindow = this .window
673674 Box (Modifier .fillMaxSize().background(Color .Black ))
674675
675676 if (showInnerWindow) {
676677 Window (
677678 onCloseRequest = {},
678679 state = rememberWindowState(
679- initialBoundsProvider = WindowBoundsProvider (WindowSizeProvider .Fixed (windowSize))
680- ),
680+ initialBoundsProvider = WindowBoundsProvider .Absolute (
681+ outerWindowState.bounds
682+ )
683+ )
681684 ) {
682685 innerWindow = this .window
683686 Box (Modifier .fillMaxSize().background(Color .Black ))
@@ -691,7 +694,6 @@ class WindowTestV2 {
691694
692695 showInnerWindow = true
693696 awaitIdle()
694- delay(1000 )
695697
696698 var nonBlackPixelDetected: java.awt.Color ? = null
697699 val testLocation = innerWindow.bounds.let {
@@ -709,9 +711,10 @@ class WindowTestV2 {
709711 }
710712 }
711713
712- innerWindow.dispose()
713- awaitIdle()
714- delay(1000 )
714+ delay(500 .milliseconds)
715+ showInnerWindow = false
716+ delay(500 .milliseconds)
717+ assertFalse(innerWindow.isVisible)
715718
716719 stopThread.getAndSet(true )
717720 t.join()
0 commit comments