diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts index d4c97b6c..a1b03d86 100644 --- a/src/main/events/ipcList.ts +++ b/src/main/events/ipcList.ts @@ -205,6 +205,12 @@ export default { return dataResult + bakResult + manageResult + manageBakResult }) + ipcMain.on('toggleMainWindowAlwaysOnTop', () => { + const mainWindow = windowManager.get(IWindowList.SETTING_WINDOW)! + const isAlwaysOnTop = mainWindow.isAlwaysOnTop() + mainWindow.setAlwaysOnTop(!isAlwaysOnTop) + }) + ipcMain.on('openSettingWindow', () => { windowManager.get(IWindowList.SETTING_WINDOW)!.show() if (windowManager.has(IWindowList.MINI_WINDOW)) { diff --git a/src/renderer/layouts/Main.vue b/src/renderer/layouts/Main.vue index dcf982c3..27a795a2 100644 --- a/src/renderer/layouts/Main.vue +++ b/src/renderer/layouts/Main.vue @@ -10,6 +10,15 @@ v-if="os !== 'darwin'" class="handle-bar" > + + + - + - + - + @@ -232,11 +241,12 @@ import { Menu, Share, InfoFilled, - Minus, - CirclePlus, - Close, + SemiSelect, + ArrowDownBold, + CloseBold, PieChart, - Link + Link, + ArrowUpBold } from '@element-plus/icons-vue' import { ElMessage as $message, ElMessageBox } from 'element-plus' import { T as $T } from '@/i18n/index' @@ -273,6 +283,7 @@ const picBed: Ref = ref([]) const qrcodeVisible = ref(false) const picBedConfigString = ref('') const choosedPicBedForQRCode: Ref = ref([]) +const isAlwaysOnTop = ref(false) const keepAlivePages = $router.getRoutes().filter(item => item.meta.keepAlive).map(item => item.name as string) @@ -367,6 +378,11 @@ function getPicBeds (event: IpcRendererEvent, picBeds: IPicBedType[]) { picBed.value = picBeds } +function setAlwaysOnTop () { + isAlwaysOnTop.value = !isAlwaysOnTop.value + sendToMain('toggleMainWindowAlwaysOnTop', isAlwaysOnTop.value) +} + onBeforeRouteUpdate(async (to) => { if (to.params.type) { defaultActive.value = `${routerConfig.UPLOADER_CONFIG_PAGE}-${to.params.type}`