Fixed: #128 || tray window display bug in multi screen

This commit is contained in:
Molunerfinn
2018-10-20 23:25:30 +08:00
parent 094b83b30b
commit ca01d2c521
+6 -19
View File
@@ -102,7 +102,7 @@ function createTray () {
} }
tray.popUpContextMenu(contextMenu) tray.popUpContextMenu(contextMenu)
}) })
tray.on('click', () => { tray.on('click', (event, bounds) => {
if (process.platform === 'darwin') { if (process.platform === 'darwin') {
let img = clipboard.readImage() let img = clipboard.readImage()
let obj = [] let obj = []
@@ -115,7 +115,7 @@ function createTray () {
imgUrl imgUrl
}) })
} }
toggleWindow() toggleWindow(bounds)
setTimeout(() => { setTimeout(() => {
window.webContents.send('clipboardFiles', obj) window.webContents.send('clipboardFiles', obj)
}, 0) }, 0)
@@ -301,29 +301,16 @@ const createMenu = () => {
} }
} }
const getWindowPosition = () => { const toggleWindow = (bounds) => {
const windowBounds = window.getBounds()
const trayBounds = tray.getBounds()
const x = Math.round(trayBounds.x + (trayBounds.width / 2) - (windowBounds.width / 2))
const y = Math.round(trayBounds.y + trayBounds.height - 10)
return {
x,
y
}
}
const toggleWindow = () => {
if (window.isVisible()) { if (window.isVisible()) {
window.hide() window.hide()
} else { } else {
showWindow() showWindow(bounds)
} }
} }
const showWindow = () => { const showWindow = (bounds) => {
const position = getWindowPosition() window.setPosition(bounds.x - 98 + 11, bounds.y, false)
window.setPosition(position.x, position.y, false)
window.webContents.send('updateFiles') window.webContents.send('updateFiles')
window.show() window.show()
window.focus() window.focus()