* fix #731
* fix #887
* Revert "在歌词滚动结束后清理窗口阴影,缓解Mac下桌面歌词出现残留阴影的问题"
This reverts commit 1f6a6bbb39
.
* update
* fix
---------
Co-authored-by: lyswhut <lyswhut@qq.com>
pull/1872/head
parent
49797f891c
commit
05363a0d22
|
@ -10,7 +10,7 @@
|
|||
|
||||
- 修复存在多级弹窗时的背景显示问题
|
||||
- 增大在线导入自定义源文件的大小限制问题(#1857)
|
||||
- 在歌词滚动结束后清理窗口阴影,缓解Mac下桌面歌词出现残留阴影的问题
|
||||
- 在歌词滚动结束后清理窗口阴影,缓解Mac下桌面歌词出现残留阴影的问题(#1869, Thanks @zclorne)
|
||||
|
||||
### 变更
|
||||
|
||||
|
|
|
@ -165,7 +165,6 @@ const modules = {
|
|||
key_down: 'key_down',
|
||||
request_main_window_channel: 'request_main_window_channel',
|
||||
provide_main_window_channel: 'provide_main_window_channel',
|
||||
invalidate_shadow: 'invalidate_shadow',
|
||||
},
|
||||
hotKey: {
|
||||
enable: 'enable',
|
||||
|
|
|
@ -78,6 +78,7 @@ export const createWindow = async(userApi: LX.UserApi.UserApiInfo) => {
|
|||
minimizable: false,
|
||||
maximizable: false,
|
||||
fullscreenable: false,
|
||||
hasShadow: false,
|
||||
show: false,
|
||||
webPreferences: {
|
||||
contextIsolation: true,
|
||||
|
|
|
@ -119,6 +119,7 @@ export const createWindow = () => {
|
|||
useContentSize: true,
|
||||
frame: false,
|
||||
transparent: true,
|
||||
hasShadow: false,
|
||||
// enableRemoteModule: false,
|
||||
// icon: join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'),
|
||||
resizable: false,
|
||||
|
@ -194,11 +195,6 @@ export const getMainFrame = (): Electron.WebFrameMain | null => {
|
|||
return browserWindow.webContents.mainFrame
|
||||
}
|
||||
|
||||
export const invalidateShadow = () => {
|
||||
if (!browserWindow) return
|
||||
browserWindow.invalidateShadow()
|
||||
}
|
||||
|
||||
interface AlwaysOnTopTools {
|
||||
timeout: NodeJS.Timeout | null
|
||||
setAlwaysOnTop: (isLoop: boolean) => void
|
||||
|
|
|
@ -3,7 +3,7 @@ import { mainOn, mainHandle } from '@common/mainIpc'
|
|||
import { WIN_LYRIC_RENDERER_EVENT_NAME } from '@common/ipcNames'
|
||||
import { buildLyricConfig, getLyricWindowBounds } from './utils'
|
||||
import { sendNewDesktopLyricClient } from '@main/modules/winMain'
|
||||
import { getBounds, getMainFrame, invalidateShadow, sendEvent, setBounds } from './main'
|
||||
import { getBounds, getMainFrame, sendEvent, setBounds } from './main'
|
||||
import { MessageChannelMain } from 'electron'
|
||||
|
||||
|
||||
|
@ -29,10 +29,6 @@ export default () => {
|
|||
setBounds(getLyricWindowBounds(getBounds(), options))
|
||||
})
|
||||
|
||||
mainOn(WIN_LYRIC_RENDERER_EVENT_NAME.invalidate_shadow, () => {
|
||||
invalidateShadow()
|
||||
})
|
||||
|
||||
mainOn(WIN_LYRIC_RENDERER_EVENT_NAME.request_main_window_channel, ({ event }) => {
|
||||
if (event.senderFrame !== getMainFrame()) return
|
||||
// Create a new channel ...
|
||||
|
|
|
@ -76,6 +76,7 @@ export const createWindow = () => {
|
|||
width: windowSizeInfo.width,
|
||||
frame: false,
|
||||
transparent: !global.envParams.cmdParams.dt,
|
||||
hasShadow: global.envParams.cmdParams.dt,
|
||||
// enableRemoteModule: false,
|
||||
// icon: join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'),
|
||||
resizable: false,
|
||||
|
|
|
@ -2,7 +2,7 @@ import { ref, onMounted, onBeforeUnmount, watch, nextTick } from '@common/utils/
|
|||
import { scrollTo } from '@common/utils/renderer'
|
||||
import { lyric } from '@lyric/store/lyric'
|
||||
import { isPlay, setting } from '@lyric/store/state'
|
||||
import { invalidateShadow, setWindowBounds } from '@lyric/utils/ipc'
|
||||
import { setWindowBounds } from '@lyric/utils/ipc'
|
||||
|
||||
const getOffsetTop = (contentHeight, lineHeight) => {
|
||||
switch (setting['desktopLyric.scrollAlign']) {
|
||||
|
@ -45,13 +45,9 @@ export default (isComputeHeight) => {
|
|||
offset = prevActiveLine < lyric.line ? ((dom_lines[prevActiveLine]?.clientHeight ?? 0) - prevLineHeight) : 0
|
||||
// console.log(prevActiveLine, dom_lines[prevActiveLine]?.clientHeight ?? 0, prevLineHeight, offset)
|
||||
}
|
||||
cancelScrollFn = scrollTo(dom_lyric.value, dom_p ? (dom_p.offsetTop - offset - getOffsetTop(dom_lyric.value.clientHeight, dom_p.clientHeight)) : 0, duration, () => {
|
||||
invalidateShadow()
|
||||
})
|
||||
cancelScrollFn = scrollTo(dom_lyric.value, dom_p ? (dom_p.offsetTop - offset - getOffsetTop(dom_lyric.value.clientHeight, dom_p.clientHeight)) : 0, duration)
|
||||
} else {
|
||||
cancelScrollFn = scrollTo(dom_lyric.value, 0, duration, () => {
|
||||
invalidateShadow()
|
||||
})
|
||||
cancelScrollFn = scrollTo(dom_lyric.value, 0, duration)
|
||||
}
|
||||
}
|
||||
const clearLyricScrollTimeout = () => {
|
||||
|
@ -162,7 +158,6 @@ export default (isComputeHeight) => {
|
|||
setLyric(lines)
|
||||
} else {
|
||||
cancelScrollFn = scrollTo(dom_lyric.value, 0, 300, () => {
|
||||
invalidateShadow()
|
||||
if (lyric.lines !== lines) return
|
||||
setLyric(lines)
|
||||
}, 50)
|
||||
|
|
|
@ -2,7 +2,7 @@ import { ref, onMounted, onBeforeUnmount, watch, nextTick } from '@common/utils/
|
|||
import { scrollXRTo } from '@common/utils/renderer'
|
||||
import { lyric } from '@lyric/store/lyric'
|
||||
import { isPlay, setting } from '@lyric/store/state'
|
||||
import { invalidateShadow, setWindowBounds } from '@lyric/utils/ipc'
|
||||
import { setWindowBounds } from '@lyric/utils/ipc'
|
||||
|
||||
const getOffsetTop = (contentWidth, lineWidth) => {
|
||||
switch (setting['desktopLyric.scrollAlign']) {
|
||||
|
@ -45,13 +45,9 @@ export default (isComputeWidth) => {
|
|||
offset = prevActiveLine < lyric.line ? ((dom_lines[prevActiveLine]?.clientWidth ?? 0) - prevLineWidth) : 0
|
||||
// console.log(prevActiveLine, dom_lines[prevActiveLine]?.clientHeight ?? 0, prevLineWidth, offset)
|
||||
}
|
||||
cancelScrollFn = scrollXRTo(dom_lyric.value, dom_p ? (dom_p.offsetLeft + offset - getOffsetTop(dom_lyric.value.clientWidth, dom_p.clientWidth)) : 0, duration, () => {
|
||||
invalidateShadow()
|
||||
})
|
||||
cancelScrollFn = scrollXRTo(dom_lyric.value, dom_p ? (dom_p.offsetLeft + offset - getOffsetTop(dom_lyric.value.clientWidth, dom_p.clientWidth)) : 0, duration)
|
||||
} else {
|
||||
cancelScrollFn = scrollXRTo(dom_lyric.value, 0, duration, () => {
|
||||
invalidateShadow()
|
||||
})
|
||||
cancelScrollFn = scrollXRTo(dom_lyric.value, 0, duration)
|
||||
}
|
||||
}
|
||||
const clearLyricScrollTimeout = () => {
|
||||
|
@ -162,7 +158,6 @@ export default (isComputeWidth) => {
|
|||
setLyric(lines)
|
||||
} else {
|
||||
cancelScrollFn = scrollXRTo(dom_lyric.value, 0, 300, () => {
|
||||
invalidateShadow()
|
||||
if (lyric.lines !== lines) return
|
||||
setLyric(lines)
|
||||
}, 50)
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import { rendererSend, rendererInvoke, rendererOn, rendererOff } from '@common/rendererIpc'
|
||||
import { CMMON_EVENT_NAME, WIN_LYRIC_RENDERER_EVENT_NAME } from '@common/ipcNames'
|
||||
import { isMac } from '@common/utils'
|
||||
|
||||
type RemoveListener = () => void
|
||||
|
||||
|
@ -19,10 +18,6 @@ export const onSettingChanged = (listener: LX.IpcRendererEventListenerParams<Par
|
|||
export const setWindowBounds = (bounds: LX.DesktopLyric.NewBounds) => {
|
||||
rendererSend<LX.DesktopLyric.NewBounds>(WIN_LYRIC_RENDERER_EVENT_NAME.set_win_bounds, bounds)
|
||||
}
|
||||
export const invalidateShadow = () => {
|
||||
if (!isMac) return
|
||||
rendererSend(WIN_LYRIC_RENDERER_EVENT_NAME.invalidate_shadow)
|
||||
}
|
||||
|
||||
export const sendConnectMainWindowEvent = () => {
|
||||
rendererSend(WIN_LYRIC_RENDERER_EVENT_NAME.request_main_window_channel)
|
||||
|
|
Loading…
Reference in New Issue