perf: use goroutine to implement window resize events.

perf: optimized window display in fullscreen and maximized modes. #19
This commit is contained in:
tiny-craft
2023-10-15 04:02:09 +08:00
parent 2db858ba9e
commit ad9f13d557
11 changed files with 225 additions and 95 deletions

View File

@@ -4,7 +4,8 @@ import WindowMax from '@/components/icons/WindowMax.vue'
import WindowClose from '@/components/icons/WindowClose.vue'
import { computed } from 'vue'
import { useThemeVars } from 'naive-ui'
import { Quit, WindowIsMaximised, WindowMinimise, WindowToggleMaximise } from 'wailsjs/runtime/runtime.js'
import { Quit, WindowMinimise, WindowToggleMaximise } from 'wailsjs/runtime/runtime.js'
import WindowRestore from '@/components/icons/WindowRestore.vue'
const themeVars = useThemeVars()
const props = defineProps({
@@ -12,6 +13,9 @@ const props = defineProps({
type: Number,
default: 35,
},
maximised: {
type: Boolean,
},
})
const buttonSize = computed(() => {
@@ -33,7 +37,7 @@ const handleClose = () => {
<template>
<n-space :wrap-item="false" align="center" justify="center" :size="0">
<n-tooltip :show-arrow="false">
<n-tooltip :show-arrow="false" :delay="1000">
{{ $t('menu.minimise') }}
<template #trigger>
<div class="btn-wrapper" @click="handleMinimise">
@@ -41,15 +45,23 @@ const handleClose = () => {
</div>
</template>
</n-tooltip>
<n-tooltip :show-arrow="false">
{{ WindowIsMaximised() ? $t('menu.restore') : $t('menu.maximise') }}
<n-tooltip :show-arrow="false" :delay="1000" v-if="maximised">
{{ $t('menu.restore') }}
<template #trigger>
<div class="btn-wrapper" @click="handleMaximise">
<window-restore />
</div>
</template>
</n-tooltip>
<n-tooltip :show-arrow="false" :delay="1000" v-else>
{{ $t('menu.maximise') }}
<template #trigger>
<div class="btn-wrapper" @click="handleMaximise">
<window-max />
</div>
</template>
</n-tooltip>
<n-tooltip :show-arrow="false">
<n-tooltip :show-arrow="false" :delay="1000">
{{ $t('menu.close') }}
<template #trigger>
<div class="btn-wrapper" @click="handleClose">