From 76a5713002555e656735340fa2a58e9e8d821138 Mon Sep 17 00:00:00 2001 From: Him188 Date: Thu, 16 May 2024 22:15:31 +0100 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20PC=20=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=90=8E=E4=BB=8D=E7=84=B6=E6=9C=89=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E7=9A=84=E9=97=AE=E9=A2=98,=20close=20#276?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/desktop/src/AniDesktop.kt | 71 ++++++++++++++++------------------- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/app/desktop/src/AniDesktop.kt b/app/desktop/src/AniDesktop.kt index 1dd4480ee0..269b84ded1 100644 --- a/app/desktop/src/AniDesktop.kt +++ b/app/desktop/src/AniDesktop.kt @@ -33,8 +33,10 @@ import androidx.compose.runtime.SideEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.awt.ComposeWindow +import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.WindowState +import androidx.compose.ui.window.singleWindowApplication import dev.dirs.ProjectDirectories import kotlinx.coroutines.launch import me.him188.ani.app.interaction.PlatformImplementations @@ -60,9 +62,7 @@ import me.him188.ani.app.videoplayer.ui.state.PlayerStateFactory import me.him188.ani.utils.logging.logger import org.koin.core.context.startKoin import org.koin.dsl.module -import java.awt.Dimension import java.io.File -import javax.swing.SwingUtilities private val logger = logger("Ani") @@ -119,46 +119,41 @@ object AniDesktop { val sessionManager by koin.koin.inject() - SwingUtilities.invokeLater { - ComposeWindow().apply { - title = "ani" - size = Dimension((1080 / 2.2f).toInt(), (1920 / 2.2f).toInt()) - - setContent { - println("renderApi: " + this.window.renderApi) - CompositionLocalProvider(LocalContext provides context) { - // This actually runs only once since app is never changed. - val windowImmersed = true - if (windowImmersed) { - SideEffect { - window.rootPane.putClientProperty("apple.awt.fullWindowContent", true) - window.rootPane.putClientProperty("apple.awt.transparentTitleBar", true) - } - } else { - SideEffect { - window.rootPane.putClientProperty("apple.awt.fullWindowContent", false) - window.rootPane.putClientProperty("apple.awt.transparentTitleBar", false) - } - } - - MainWindowContent( - hostIsMacOs = PlatformImplementations.hostIsMacOs, - windowImmersed = windowImmersed, - navigator - ) + singleWindowApplication( + state = WindowState( + size = DpSize(800.dp, 1000.dp), + ), + title = "Ani", + ) { + println("renderApi: " + this.window.renderApi) + CompositionLocalProvider(LocalContext provides context) { + // This actually runs only once since app is never changed. + val windowImmersed = true + if (windowImmersed) { + SideEffect { + window.rootPane.putClientProperty("apple.awt.fullWindowContent", true) + window.rootPane.putClientProperty("apple.awt.transparentTitleBar", true) } - - LaunchedEffect(true) { - coroutineScope.launch { - sessionManager.requireOnline(navigator) - } + } else { + SideEffect { + window.rootPane.putClientProperty("apple.awt.fullWindowContent", false) + window.rootPane.putClientProperty("apple.awt.transparentTitleBar", false) } } - isVisible = true + + MainWindowContent( + hostIsMacOs = PlatformImplementations.hostIsMacOs, + windowImmersed = windowImmersed, + navigator + ) + } + + LaunchedEffect(true) { + coroutineScope.launch { + sessionManager.requireOnline(navigator) + } } } -// application(exitProcessOnExit = true) { -// } } }