🐛 Fix: fix repeated upload bug when listening clipboard

This commit is contained in:
萌萌哒赫萝
2023-04-10 19:50:36 +08:00
parent 993d2ac4de
commit 6c18bcb130
4 changed files with 23 additions and 32 deletions

View File

@@ -58,6 +58,7 @@ export function setDockMenu () {
click () {
db.set('settings.isListeningClipboard', false)
clipboardPoll.stopListening()
clipboardPoll.removeAllListeners()
setDockMenu()
},
enabled: isListeningClipboard
@@ -152,6 +153,7 @@ export function createContextMenu () {
click () {
db.set('settings.isListeningClipboard', false)
ClipboardWatcher.stopListening()
ClipboardWatcher.removeAllListeners()
createContextMenu()
},
enabled: isListeningClipboard
@@ -175,7 +177,7 @@ export function createContextMenu () {
label: T('OPEN_MINI_WINDOW'),
click () {
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
miniWindow.removeAllListeners()
if (db.get('settings.miniWindowOntop')) {
miniWindow.setAlwaysOnTop(true)
}
@@ -186,14 +188,12 @@ export function createContextMenu () {
} else {
miniWindow.setPosition(width - 100, height - 100)
}
miniWindow.on('close', () => {
const setPositionFunc = () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
miniWindow.on('move', () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
}
miniWindow.on('close', setPositionFunc)
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
}
@@ -225,7 +225,7 @@ export function createContextMenu () {
label: T('OPEN_MINI_WINDOW'),
click () {
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
miniWindow.removeAllListeners()
if (db.get('settings.miniWindowOntop')) {
miniWindow.setAlwaysOnTop(true)
}
@@ -236,14 +236,12 @@ export function createContextMenu () {
} else {
miniWindow.setPosition(width - 100, height - 100)
}
miniWindow.on('close', () => {
const setPositionFunc = () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
miniWindow.on('move', () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
}
miniWindow.on('close', setPositionFunc)
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
}
@@ -266,6 +264,7 @@ export function createContextMenu () {
click () {
db.set('settings.isListeningClipboard', false)
ClipboardWatcher.stopListening()
ClipboardWatcher.removeAllListeners()
createContextMenu()
},
enabled: isListeningClipboard

View File

@@ -168,7 +168,7 @@ export default {
ipcMain.on('openMiniWindow', () => {
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
const settingWindow = windowManager.get(IWindowList.SETTING_WINDOW)!
miniWindow.removeAllListeners()
if (db.get('settings.miniWindowOntop')) {
miniWindow.setAlwaysOnTop(true)
}
@@ -179,14 +179,12 @@ export default {
} else {
miniWindow.setPosition(width - 100, height - 100)
}
miniWindow.on('close', () => {
const setPositionFunc = () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
miniWindow.on('move', () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
}
miniWindow.on('close', setPositionFunc)
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
settingWindow.hide()

View File

@@ -190,6 +190,7 @@ class LifeCycle {
if (startMode === 'mini') {
windowManager.create(IWindowList.MINI_WINDOW)
const miniWindow = windowManager.get(IWindowList.MINI_WINDOW)!
miniWindow.removeAllListeners()
if (db.get('settings.miniWindowOntop')) {
miniWindow.setAlwaysOnTop(true)
}
@@ -200,14 +201,12 @@ class LifeCycle {
} else {
miniWindow.setPosition(width - 100, height - 100)
}
miniWindow.on('close', () => {
const setPositionFunc = () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
miniWindow.on('move', () => {
const position = miniWindow.getPosition()
db.set('settings.miniWindowPosition', position)
})
}
miniWindow.on('close', setPositionFunc)
miniWindow.on('move', setPositionFunc)
miniWindow.show()
miniWindow.focus()
} else if (startMode === 'main') {
@@ -269,8 +268,6 @@ class LifeCycle {
globalShortcut.unregisterAll()
bus.removeAllListeners()
server.shutdown()
const clipboardWatcher = process.platform === 'darwin' ? clipboardPoll : clipboardListener
clipboardWatcher.stopListening()
})
// Exit cleanly on request from parent process in development mode.
if (isDevelopment) {

View File

@@ -13,7 +13,6 @@ class ClipboardWatcher extends EventEmitter {
startListening (watchDelay = 500) {
this.stopListening()
console.log('timer', this.timer)
const image = clipboard.readImage()
if (!image.isEmpty()) {
@@ -40,12 +39,10 @@ class ClipboardWatcher extends EventEmitter {
this.lastImage = currentImage
this.emit('change', currentImage)
}, watchDelay)
console.log('start timer', this.timer)
}
stopListening () {
if (this.timer) {
console.log('stop timer')
clearInterval(this.timer)
this.timer = null
}