Skip to content

Commit

Permalink
修复 PC 关闭窗口后仍然有后台的问题, close #276
Browse files Browse the repository at this point in the history
  • Loading branch information
Him188 committed May 16, 2024
1 parent 198ef82 commit 76a5713
Showing 1 changed file with 33 additions and 38 deletions.
71 changes: 33 additions & 38 deletions app/desktop/src/AniDesktop.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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")

Expand Down Expand Up @@ -119,46 +119,41 @@ object AniDesktop {

val sessionManager by koin.koin.inject<SessionManager>()

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) {
// }
}

}
Expand Down

0 comments on commit 76a5713

Please sign in to comment.