diff --git a/src/main/kotlin/ca/gosyer/data/server/host/ServerHostPreference.kt b/src/main/kotlin/ca/gosyer/data/server/host/ServerHostPreference.kt index 16ae00ca..8dfdad37 100644 --- a/src/main/kotlin/ca/gosyer/data/server/host/ServerHostPreference.kt +++ b/src/main/kotlin/ca/gosyer/data/server/host/ServerHostPreference.kt @@ -103,6 +103,7 @@ sealed class ServerHostPreference { class SystemTrayEnabled(preferenceStore: PreferenceStore) : BooleanServerHostPreference( preferenceStore, "systemTrayEnabled", + false, true ) diff --git a/src/main/kotlin/ca/gosyer/ui/main/main.kt b/src/main/kotlin/ca/gosyer/ui/main/main.kt index fc68cf3e..08f34aa8 100644 --- a/src/main/kotlin/ca/gosyer/ui/main/main.kt +++ b/src/main/kotlin/ca/gosyer/ui/main/main.kt @@ -21,8 +21,10 @@ import androidx.compose.ui.input.key.KeyEventType import androidx.compose.ui.input.key.key import androidx.compose.ui.input.key.type import androidx.compose.ui.res.painterResource +import androidx.compose.ui.window.Tray import androidx.compose.ui.window.Window import androidx.compose.ui.window.awaitApplication +import androidx.compose.ui.window.rememberTrayState import androidx.compose.ui.window.rememberWindowState import ca.gosyer.build.BuildConfig import ca.gosyer.core.logging.initializeLogger @@ -153,6 +155,16 @@ suspend fun main() { val icon = painterResource("icon.png") + val trayState = rememberTrayState() + Tray( + icon, + trayState, + tooltip = BuildConfig.NAME, + menu = { + Item(resources.getStringA("action_close"), onClick = ::exitApplication) + } + ) + Window( onCloseRequest = { if (confirmExit.value) {