Fix window resize (desktop)

This commit is contained in:
2026-09-01 11:54:56 +02:00
parent 85902620da
commit 768bb0c650
@@ -1,32 +1,23 @@
package com.jaytux.phoebench.clients package com.jaytux.phoebench.clients
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.material3.Text import androidx.compose.runtime.*
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.awt.SwingPanel import androidx.compose.ui.awt.SwingPanel
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.DpSize
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Window import androidx.compose.ui.window.*
import androidx.compose.ui.window.WindowPlacement
import androidx.compose.ui.window.WindowPosition
import androidx.compose.ui.window.application
import androidx.compose.ui.window.rememberWindowState
import com.jaytux.phoebench.clients.theme.GlobalUiMode import com.jaytux.phoebench.clients.theme.GlobalUiMode
import com.jaytux.phoebench.clients.theme.UiMode import com.jaytux.phoebench.clients.theme.UiMode
import java.awt.GraphicsConfiguration import java.awt.GraphicsConfiguration
import java.awt.GraphicsEnvironment import java.awt.GraphicsEnvironment
import java.awt.Toolkit import java.awt.Toolkit
import java.awt.event.ComponentEvent
import java.awt.event.ComponentListener
import javax.swing.JPanel import javax.swing.JPanel
fun windowData(config: GraphicsConfiguration): Pair<DpSize, DpOffset> { fun windowData(config: GraphicsConfiguration): Pair<DpSize, DpOffset> {
@@ -49,6 +40,21 @@ fun main() = application {
var mode by remember { mutableStateOf(UiMode.NARROW) } var mode by remember { mutableStateOf(UiMode.NARROW) }
Window(onCloseRequest = ::exitApplication, state, title = "PhoeBench") { Window(onCloseRequest = ::exitApplication, state, title = "PhoeBench") {
var width by remember { mutableStateOf(window.width.dp) }
LaunchedEffect(Unit) {
window.addComponentListener(object : ComponentListener {
override fun componentResized(e: ComponentEvent?) {
width = e?.component?.width?.dp ?: width
}
override fun componentMoved(e: ComponentEvent?) {}
override fun componentShown(e: ComponentEvent?) {}
override fun componentHidden(e: ComponentEvent?) {}
})
}
mode = UiMode.fromDp(width)
Column(Modifier.fillMaxSize()) { Column(Modifier.fillMaxSize()) {
SwingPanel(modifier = Modifier.size(0.dp), factory = { SwingPanel(modifier = Modifier.size(0.dp), factory = {
JPanel().apply { JPanel().apply {