mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 09:46:22 +00:00
move ipc server to main process
This commit is contained in:
@@ -54,6 +54,7 @@ trayMenu.append(new MenuItem({
|
||||
finderWindow.webContents.send('open-main-from-tray')
|
||||
}
|
||||
}))
|
||||
|
||||
if (process.env.platform !== 'linux' || process.env.DESKTOP_SESSION === 'cinnamon') {
|
||||
trayMenu.append(new MenuItem({
|
||||
label: 'Open Finder window',
|
||||
@@ -62,6 +63,7 @@ if (process.env.platform !== 'linux' || process.env.DESKTOP_SESSION === 'cinnamo
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
trayMenu.append(new MenuItem({
|
||||
label: 'Quit',
|
||||
click: function () {
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
const electron = require('electron')
|
||||
const ipc = electron.ipcMain
|
||||
const Menu = electron.Menu
|
||||
const globalShortcut = electron.globalShortcut
|
||||
const mainWindow = require('./main-window')
|
||||
|
||||
function toggleFinder () {
|
||||
mainWindow.webContents.send('open-finder', {})
|
||||
}
|
||||
|
||||
function toggleMain () {
|
||||
if (mainWindow.isFocused()) {
|
||||
if (process.platform === 'darwin') {
|
||||
Menu.sendActionToFirstResponder('hide:')
|
||||
} else {
|
||||
mainWindow.minimize()
|
||||
}
|
||||
} else {
|
||||
if (process.platform === 'darwin') {
|
||||
mainWindow.show()
|
||||
} else {
|
||||
mainWindow.minimize()
|
||||
mainWindow.restore()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ipc.on('config-renew', (e, payload) => {
|
||||
globalShortcut.unregisterAll()
|
||||
var { config } = payload
|
||||
|
||||
var errors = []
|
||||
try {
|
||||
globalShortcut.register(config.hotkey.toggleFinder, toggleFinder)
|
||||
} catch (err) {
|
||||
errors.push('toggleFinder')
|
||||
}
|
||||
try {
|
||||
globalShortcut.register(config.hotkey.toggleMain, toggleMain)
|
||||
} catch (err) {
|
||||
errors.push('toggleMain')
|
||||
}
|
||||
if (!config.silent) {
|
||||
if (errors.length === 0) {
|
||||
mainWindow.webContents.send('APP_SETTING_DONE', {})
|
||||
} else {
|
||||
mainWindow.webContents.send('APP_SETTING_ERROR', {
|
||||
message: 'Failed to apply hotkey: ' + errors.join(' ')
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
89
lib/ipcServer.js
Normal file
89
lib/ipcServer.js
Normal file
@@ -0,0 +1,89 @@
|
||||
const nodeIpc = require('node-ipc')
|
||||
const { app, Menu, globalShortcut, ipcMain } = require('electron')
|
||||
const path = require('path')
|
||||
const mainWindow = require('./main-window')
|
||||
|
||||
nodeIpc.config.id = 'node'
|
||||
nodeIpc.config.retry = 1500
|
||||
nodeIpc.config.silent = true
|
||||
|
||||
function toggleMainWindow () {
|
||||
switch (global.process.platform) {
|
||||
case 'darwin':
|
||||
if (mainWindow.isFocused()) {
|
||||
Menu.sendActionToFirstResponder('hide:')
|
||||
} else {
|
||||
mainWindow.show()
|
||||
}
|
||||
return
|
||||
default:
|
||||
if (mainWindow.isFocused()) {
|
||||
mainWindow.minimize()
|
||||
} else {
|
||||
mainWindow.minimize()
|
||||
mainWindow.restore()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toggleFinder () {
|
||||
nodeIpc.server.broadcast('open-finder')
|
||||
}
|
||||
|
||||
ipcMain.on('config-renew', (e, payload) => {
|
||||
nodeIpc.server.broadcast('config-renew', payload)
|
||||
|
||||
globalShortcut.unregisterAll()
|
||||
var { config } = payload
|
||||
|
||||
var errors = []
|
||||
try {
|
||||
globalShortcut.register(config.hotkey.toggleFinder, toggleFinder)
|
||||
} catch (err) {
|
||||
errors.push('toggleFinder')
|
||||
}
|
||||
try {
|
||||
globalShortcut.register(config.hotkey.toggleMain, toggleMainWindow)
|
||||
} catch (err) {
|
||||
errors.push('toggleMain')
|
||||
}
|
||||
if (!config.silent) {
|
||||
if (errors.length === 0) {
|
||||
mainWindow.webContents.send('APP_SETTING_DONE', {})
|
||||
} else {
|
||||
mainWindow.webContents.send('APP_SETTING_ERROR', {
|
||||
message: 'Failed to apply hotkey: ' + errors.join(' ')
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
nodeIpc.serve(
|
||||
path.join(app.getPath('userData'), 'boostnote.service'),
|
||||
function () {
|
||||
nodeIpc.server.on('open-main-from-finder', toggleMainWindow)
|
||||
|
||||
nodeIpc.server.on('quit-from-finder', function () {
|
||||
app.quit()
|
||||
})
|
||||
|
||||
nodeIpc.server.on('connect', function (socket) {
|
||||
nodeIpc.log('ipc server >> socket joinned'.rainbow)
|
||||
socket.on('close', function () {
|
||||
nodeIpc.log('ipc server >> socket closed'.rainbow)
|
||||
})
|
||||
})
|
||||
nodeIpc.server.on('error', function (err) {
|
||||
nodeIpc.log('Node IPC error'.rainbow, err)
|
||||
})
|
||||
|
||||
nodeIpc.server.on('request-data-from-finder', function () {
|
||||
nodeIpc.server.broadcast('request-data-from-finder')
|
||||
})
|
||||
nodeIpc.server.on('throttle-data', function (payload) {
|
||||
nodeIpc.server.broadcast('throttle-data', payload)
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
module.exports = nodeIpc
|
||||
@@ -8,7 +8,7 @@ const ChildProcess = require('child_process')
|
||||
const _ = require('lodash')
|
||||
const GhReleases = require('electron-gh-releases')
|
||||
// electron.crashReporter.start()
|
||||
require('./ipc')
|
||||
var ipcServer = null
|
||||
|
||||
var mainWindow = null
|
||||
var finderWindow = null
|
||||
@@ -112,8 +112,8 @@ app.on('ready', function () {
|
||||
}, 1000 * 60 * 60)
|
||||
|
||||
checkUpdate()
|
||||
|
||||
require('./hotkey')
|
||||
ipcServer = require('./ipcServer')
|
||||
ipcServer.server.start()
|
||||
})
|
||||
|
||||
module.exports = app
|
||||
|
||||
@@ -2,7 +2,6 @@ const electron = require('electron')
|
||||
const app = electron.app
|
||||
const BrowserWindow = electron.BrowserWindow
|
||||
const path = require('path')
|
||||
const ipc = require('./ipc')
|
||||
|
||||
var mainWindow = new BrowserWindow({
|
||||
width: 1080,
|
||||
|
||||
Reference in New Issue
Block a user