@@ -10,15 +10,19 @@ import androidx.compose.foundation.interaction.PressInteraction
1010import androidx.compose.foundation.layout.Arrangement
1111import androidx.compose.foundation.layout.Row
1212import androidx.compose.foundation.layout.WindowInsets
13+ import androidx.compose.foundation.layout.WindowInsetsSides
1314import androidx.compose.foundation.layout.asPaddingValues
1415import androidx.compose.foundation.layout.captionBar
16+ import androidx.compose.foundation.layout.displayCutout
1517import androidx.compose.foundation.layout.fillMaxSize
1618import androidx.compose.foundation.layout.navigationBars
1719import androidx.compose.foundation.layout.offset
20+ import androidx.compose.foundation.layout.only
1821import androidx.compose.foundation.layout.padding
1922import androidx.compose.foundation.layout.size
2023import androidx.compose.foundation.layout.statusBars
2124import androidx.compose.foundation.layout.width
25+ import androidx.compose.foundation.layout.windowInsetsPadding
2226import androidx.compose.foundation.lazy.LazyColumn
2327import androidx.compose.runtime.Composable
2428import androidx.compose.runtime.MutableState
@@ -83,6 +87,7 @@ expect fun modifierPlatform(modifier: Modifier, isHovered: MutableState<Boolean>
8387 * @param items The options of the [SuperDropdown].
8488 * @param alwaysRight Whether the popup is always show on the right side.
8589 * @param insideMargin The margin inside the [SuperDropdown].
90+ * @param defaultWindowInsetsPadding Whether to apply default window insets padding to the [SuperDropdown].
8691 * @param selectedIndex The index of the selected option.
8792 * @param onSelectedIndexChange The callback when the index is selected.
8893 */
@@ -96,6 +101,7 @@ fun SuperDropdown(
96101 items : List <String >,
97102 alwaysRight : Boolean = false,
98103 insideMargin : DpSize = DpSize (16.dp, 16.dp),
104+ defaultWindowInsetsPadding : Boolean = true,
99105 selectedIndex : Int ,
100106 onSelectedIndexChange : (Int ) -> Unit
101107) {
@@ -138,7 +144,7 @@ fun SuperDropdown(
138144 )
139145
140146 BasicComponent (
141- modifier = modifierPlatform(modifier = modifier , isHovered = isHovered)
147+ modifier = modifierPlatform(modifier = Modifier , isHovered = isHovered)
142148 .background(if (isHovered.value) MiuixTheme .colorScheme.onBackground.copy(0.08f ) else Color .Transparent )
143149 .indication(interactionSource, createRipple())
144150 .pointerInput(Unit ) {
@@ -199,7 +205,13 @@ fun SuperDropdown(
199205 showPopup(
200206 content = {
201207 Box (
202- modifier = Modifier
208+ modifier = if (defaultWindowInsetsPadding) {
209+ modifier
210+ .windowInsetsPadding(WindowInsets .displayCutout.only(WindowInsetsSides .Horizontal ))
211+ .windowInsetsPadding(WindowInsets .captionBar.only(WindowInsetsSides .Top ))
212+ } else {
213+ modifier
214+ }
203215 .fillMaxSize()
204216 .pointerInput(Unit ) {
205217 detectTapGestures(onTap = {
0 commit comments