Przeglądaj źródła

control center size fix

milan jurkulák 2 lat temu
rodzic
commit
0d41639bdf

+ 5 - 1
src/main/kotlin/eu/mjdev/desktop/components/controlcenter/ControlCenter.kt

@@ -17,6 +17,7 @@ import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.input.pointer.pointerInput
+import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.window.WindowPosition
@@ -27,6 +28,7 @@ import eu.mjdev.desktop.extensions.Compose.onLeftClick
 import eu.mjdev.desktop.extensions.Compose.onMousePress
 import eu.mjdev.desktop.extensions.Compose.onRightClick
 import eu.mjdev.desktop.extensions.Compose.rememberCalculated
+import eu.mjdev.desktop.extensions.Compose.rememberComputed
 import eu.mjdev.desktop.extensions.Compose.rememberState
 import eu.mjdev.desktop.helpers.animation.Animations.ControlCenterEnterAnimation
 import eu.mjdev.desktop.helpers.animation.Animations.ControlCenterExitAnimation
@@ -50,7 +52,9 @@ fun ControlCenter(
 ) = withDesktopScope {
     // todo remove those
     val backgroundAlpha by remember { theme.controlCenterBackgroundAlphaState }
-    val controlCenterExpandedWidth by remember { theme.controlCenterExpandedWidthState }
+    val controlCenterExpandedWidth : Dp by rememberComputed {
+        (containerSize.width / 100f) * theme.controlCenterExpandedWidth
+    }
     val controlCenterDividerWidth by remember { theme.controlCenterDividerWidthState }
     val controlCenterIconSize by remember { theme.controlCenterIconSizeState }
     //

+ 2 - 1
src/main/kotlin/eu/mjdev/desktop/components/sliding/base/VisibilityState.kt

@@ -9,7 +9,7 @@ import androidx.compose.ui.unit.DpSize
 import eu.mjdev.desktop.helpers.internal.DpBounds
 import eu.mjdev.desktop.helpers.internal.DpBounds.Companion.toDpBounds
 
-@Suppress("CanBeParameter", "unused", "MemberVisibilityCanBePrivate")
+@Suppress("unused", "MemberVisibilityCanBePrivate")
 class VisibilityState(
     private val startState: Boolean = false,
     var enabled: Boolean = true
@@ -30,6 +30,7 @@ class VisibilityState(
             if (enabled) {
                 visibleState.value = value
             } else {
+                visibleState.value = startState
                 println("Visible state disabled, can not set value.")
             }
         }

+ 3 - 3
src/main/kotlin/eu/mjdev/desktop/data/Theme.kt

@@ -22,7 +22,7 @@ class Theme(
 
     controlCenterLocation: ControlCenterLocation,
     controlPanelHideDelay: Long,
-    controlCenterExpandedWidth: Dp,
+    controlCenterExpandedWidthPercent: Int,
     controlCenterDividerColor: Color = backgroundColor,
     controlCenterDividerWidth: Dp,
     controlCenterIconColor: Color,
@@ -46,7 +46,7 @@ class Theme(
 
     val controlCenterLocationState = mutableStateOf(controlCenterLocation)
     val controlPanelHideDelayState = mutableStateOf(controlPanelHideDelay)
-    var controlCenterExpandedWidthState = mutableStateOf(controlCenterExpandedWidth)
+    var controlCenterExpandedWidthState = mutableStateOf(controlCenterExpandedWidthPercent)
     val controlCenterDividerColorState = mutableStateOf(controlCenterDividerColor)
     val controlCenterDividerWidthState = mutableStateOf(controlCenterDividerWidth)
     val controlCenterIconColorState = mutableStateOf(controlCenterIconColor)
@@ -105,7 +105,7 @@ class Theme(
 
                 controlCenterLocation = ControlCenterLocation.Right,
                 controlPanelHideDelay = 5000L,
-                controlCenterExpandedWidth = 480.dp,
+                controlCenterExpandedWidthPercent = 25,
                 controlCenterDividerColor = Color.SuperDarkGray,
                 controlCenterDividerWidth = 4.dp,
                 controlCenterIconColor = Color.White,

+ 0 - 3
src/main/kotlin/eu/mjdev/desktop/provider/DesktopProvider.kt

@@ -115,9 +115,6 @@ class DesktopProvider(
         get() = graphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency.TRANSLUCENT)
 
     init {
-        runCatching {
-            currentUser.theme.controlCenterExpandedWidth = containerSize.width.div(4)
-        }
         runCatching {
             mounts.init()
         }