@@ -20,6 +20,7 @@ import {
2020 electronOpenSettings ,
2121 electronStartDraggingWindow ,
2222 electronWindowClose ,
23+ electronWindowSetAlwaysOnTop ,
2324} from ' ../../../../shared/eventa'
2425
2526const { isDark, toggleDark } = useTheme ()
@@ -29,11 +30,12 @@ const settingsAudioDeviceStore = useSettingsAudioDevice()
2930const settingsStore = useSettings ()
3031const context = useElectronEventaContext ()
3132const { enabled } = storeToRefs (settingsAudioDeviceStore )
32- const { controlsIslandIconSize } = storeToRefs (settingsStore )
33+ const { alwaysOnTop, controlsIslandIconSize } = storeToRefs (settingsStore )
3334const openSettings = useElectronEventaInvoke (electronOpenSettings )
3435const openChat = useElectronEventaInvoke (electronOpenChat )
3536const isLinux = useElectronEventaInvoke (electron .app .isLinux )
3637const closeWindow = useElectronEventaInvoke (electronWindowClose )
38+ const setAlwaysOnTop = useElectronEventaInvoke (electronWindowSetAlwaysOnTop )
3739
3840const expanded = ref (false )
3941const islandRef = ref <HTMLElement >()
@@ -53,6 +55,15 @@ useIntervalFn(() => {
5355 }
5456}, 1500 )
5557
58+ // Apply alwaysOnTop on mount and when it changes
59+ watch (alwaysOnTop , (val ) => {
60+ setAlwaysOnTop (val )
61+ }, { immediate: true })
62+
63+ function toggleAlwaysOnTop() {
64+ alwaysOnTop .value = ! alwaysOnTop .value
65+ }
66+
5667// Grouped classes for icon / border / padding and combined style class
5768const adjustStyleClasses = computed (() => {
5869 let isLarge: boolean
@@ -163,6 +174,16 @@ function refreshWindow() {
163174 </template >
164175 </ControlButtonTooltip >
165176
177+ <ControlButtonTooltip >
178+ <ControlButton :button-style =" adjustStyleClasses.button" @click =" toggleAlwaysOnTop()" >
179+ <div v-if =" alwaysOnTop" i-solar:pin-bold :class =" adjustStyleClasses.icon" text =" neutral-800 dark:neutral-300" />
180+ <div v-else i-solar:pin-linear :class =" adjustStyleClasses.icon" text =" neutral-800 dark:neutral-300 opacity-50" />
181+ </ControlButton >
182+ <template #tooltip >
183+ {{ alwaysOnTop ? t('tamagotchi.stage.controls-island.unpin-from-top') : t('tamagotchi.stage.controls-island.pin-on-top') }}
184+ </template >
185+ </ControlButtonTooltip >
186+
166187 <ControlsIslandFadeOnHover :icon-class =" adjustStyleClasses.icon" :button-style =" adjustStyleClasses.button" />
167188
168189 <ControlButtonTooltip >
0 commit comments