@ -53,8 +53,7 @@ if (config.get('enable_hidpi_support') && (process.platform === 'win32')) {
app . commandLine . appendSwitch ( 'force-device-scale-factor' , '1' )
}
// Because we build it using Squirrel, it will assign UserModelId automatically, so we match it here to display notifications correctly.
// https://github.com/electron-userland/electron-builder/issues/362
// This must match the package name in package.json
app . setAppUserModelId ( 'com.thegoddessinari.rambox' ) ;
// Menu
@ -67,75 +66,6 @@ const appLauncher = new AutoLaunch({
} ) ;
config . get ( 'auto_launch' ) && ! isDev ? appLauncher . enable ( ) : appLauncher . disable ( ) ;
// this should be placed at top of main.js to handle setup events quickly
if ( handleSquirrelEvent ( ) ) {
// squirrel event handled and app will exit in 1000ms, so don't do anything else
return ;
}
function handleSquirrelEvent ( ) {
if ( process . argv . length === 1 ) {
return false ;
}
const ChildProcess = require ( 'child_process' ) ;
const appFolder = path . resolve ( process . execPath , '..' ) ;
const rootAtomFolder = path . resolve ( appFolder , '..' ) ;
const updateDotExe = path . resolve ( path . join ( rootAtomFolder , 'Update.exe' ) ) ;
const exeName = path . basename ( process . execPath ) ;
const spawn = function ( command , args ) {
let spawnedProcess , error ;
try {
spawnedProcess = ChildProcess . spawn ( command , args , { detached : true } ) ;
} catch ( error ) { }
return spawnedProcess ;
} ;
const spawnUpdate = function ( args ) {
return spawn ( updateDotExe , args ) ;
} ;
const squirrelEvent = process . argv [ 1 ] ;
switch ( squirrelEvent ) {
case '--squirrel-install' :
case '--squirrel-updated' :
// Optionally do things such as:
// - Add your .exe to the PATH
// - Write to the registry for things like file associations and
// explorer context menus
// Install desktop and start menu shortcuts
spawnUpdate ( [ '--createShortcut' , exeName ] ) ;
setTimeout ( app . quit , 1000 ) ;
return true ;
case '--squirrel-uninstall' :
// Undo anything you did in the --squirrel-install and
// --squirrel-updated handlers
// Remove desktop and start menu shortcuts
spawnUpdate ( [ '--removeShortcut' , exeName ] ) ;
// Remove user app data
require ( 'rimraf' ) . sync ( require ( 'electron' ) . app . getPath ( 'userData' ) ) ;
setTimeout ( app . quit , 1000 ) ;
return true ;
case '--squirrel-obsolete' :
// This is called on the outgoing version of your app before
// we update to the new version - it's the opposite of
// --squirrel-updated
app . quit ( ) ;
return true ;
}
} ;
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow ;