index.js 1.35 KiB
Newer Older
Amaury Martiny's avatar
Amaury Martiny committed
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
Amaury Martiny's avatar
Amaury Martiny committed
// SPDX-License-Identifier: BSD-3-Clause
import { killParity } from '@parity/electron';
import electron from 'electron';
import FetherAppOptions from './app/options';
// Disable gpu acceleration on linux
// https://github.com/parity-js/fether/issues/85
if (!['darwin', 'win32'].includes(process.platform)) {
  app.disableHardwareAcceleration();
}

const fetherAppInstance = new FetherApp();
const fetherAppOptionsInstance = new FetherAppOptions();
const options = fetherAppOptionsInstance.create();

app.on('ready', () => {
  fetherAppInstance.create(options);
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
Amaury Martiny's avatar
Amaury Martiny committed
    killParity();
    app.quit();
  }
// Make sure Parity Ethereum stops when UI stops
app.on('before-quit', killParity);
app.on('will-quit', killParity);
app.on('quit', killParity);
Luke Schoen's avatar
Luke Schoen committed
// FIXME - determine how to trigger this to check that it works and doesn't create duplicate!
// perhaps it should be `!hasVisibleWindows && !fetherAppInstance` instead
// See https://electronjs.org/docs/api/app#event-activate-macos
app.on('activate', (event, hasVisibleWindows) => {
  if (!hasVisibleWindows || fetherAppInstance.fetherApp.window === null) {
    fetherAppInstance.create(options);
Amaury Martiny's avatar
Amaury Martiny committed
  }
});