Slight grab-bag of fixes for electron on Windows

* Implement the squirrel install / uninstall hooks (so we have
   a start menu entry / desktop shortcut)
 * Wait longer before checking for update
 * Set the window icon
 * Add a 'file' menu
 * Bump electron-builder
 * Add the icon url for the control panel entry
This commit is contained in:
David Baker 2016-11-07 11:41:41 +00:00
parent 6da1a1077d
commit 6681205337
3 changed files with 32 additions and 5 deletions

View File

@ -17,6 +17,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Squirrel on windows starts the app with various flags
// as hooks to tell us when we've been installed/uninstalled
// etc.
const check_squirrel_hooks = require('./squirrelhooks');
if (check_squirrel_hooks()) return;
const electron = require('electron');
const url = require('url');
@ -29,6 +35,7 @@ const PERMITTED_URL_SCHEMES = [
];
const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
let mainWindow = null;
let appQuitting = false;
@ -107,7 +114,10 @@ electron.app.on('ready', () => {
// do it in the main process (and we don't really need to check every 10 minutes:
// every hour should be just fine for a desktop app)
// However, we still let the main window listen for the update events.
pollForUpdates();
// We also wait a short time before checking for updates the first time because
// of squirrel on windows and it taking a small amount of time to release a
// lock file.
setTimeout(pollForUpdates, INITIAL_UPDATE_DELAY_MS);
setInterval(pollForUpdates, UPDATE_POLL_INTERVAL_MS);
} catch (err) {
// will fail if running in debug mode
@ -115,7 +125,7 @@ electron.app.on('ready', () => {
}
mainWindow = new electron.BrowserWindow({
icon: `${__dirname}/../../vector/img/logo.png`,
icon: `${__dirname}/../img/riot.ico`,
width: 1024, height: 768,
});
mainWindow.loadURL(`file://${__dirname}/../../vector/index.html`);

View File

@ -182,7 +182,20 @@ if (process.platform === 'darwin') {
role: 'front'
}
]
};
} else {
template.unshift({
label: 'File',
submenu: [
// For some reason, 'about' does not seem to work on windows.
/*{
role: 'about'
},*/
{
role: 'quit'
}
]
});
}
module.exports = electron.Menu.buildFromTemplate(template)

View File

@ -93,7 +93,7 @@
"catw": "^1.0.1",
"cpx": "^1.3.2",
"css-raw-loader": "^0.1.1",
"electron-builder": "^7.10.2",
"electron-builder": "^7.23.2",
"emojione": "^2.2.3",
"expect": "^1.16.0",
"fs-extra": "^0.30.0",
@ -132,9 +132,13 @@
"files": [
"!**/*",
"electron/src/**",
"electron/img/**",
"vector/**",
"package.json"
]
],
"squirrelWindows": {
"iconUrl": "https://riot.im/favicon.ico"
}
},
"directories": {
"buildResources": "electron/build",