|
1 | 1 | package top.yukonga.miuix.kmp.utils |
2 | 2 |
|
3 | 3 | import androidx.compose.runtime.Composable |
4 | | -import androidx.compose.ui.awt.ComposeWindow |
5 | | -import androidx.compose.ui.platform.LocalDensity |
| 4 | +import androidx.compose.ui.ExperimentalComposeUiApi |
| 5 | +import androidx.compose.ui.platform.LocalWindowInfo |
6 | 6 | import androidx.compose.ui.unit.Dp |
7 | 7 | import androidx.compose.ui.unit.dp |
8 | 8 | import java.awt.KeyboardFocusManager |
9 | 9 | import java.awt.event.KeyEvent |
10 | | -import kotlin.math.roundToInt |
11 | | - |
12 | | -object WindowProvider { |
13 | | - private var composeWindow: ComposeWindow? = null |
14 | | - |
15 | | - fun init(window: ComposeWindow) { |
16 | | - composeWindow = window |
17 | | - } |
18 | | - |
19 | | - fun getWindowSize(): WindowSize { |
20 | | - return composeWindow?.let { window -> |
21 | | - WindowSize( |
22 | | - width = window.bounds.width - window.insets.left - window.insets.right, |
23 | | - height = window.bounds.height - window.insets.top |
24 | | - ) |
25 | | - } ?: WindowSize(0, 0) |
26 | | - } |
27 | | -} |
28 | 10 |
|
29 | 11 | @Composable |
| 12 | +@OptIn(ExperimentalComposeUiApi::class) |
30 | 13 | actual fun getWindowSize(): WindowSize { |
31 | | - val density = LocalDensity.current.density |
32 | | - val windowSize = WindowProvider.getWindowSize() |
| 14 | + val window = LocalWindowInfo.current |
33 | 15 | return WindowSize( |
34 | | - width = (windowSize.width * density).roundToInt(), |
35 | | - height = (windowSize.height * density).roundToInt() |
| 16 | + width = window.containerSize.width, |
| 17 | + height = window.containerSize.height |
36 | 18 | ) |
37 | 19 | } |
38 | 20 |
|
|
0 commit comments