Links which cause the browser to navigate to another page should be
removed or disabled in Scratch Desktop to prevent Electron from
navigating away from the editor. If we miss disabling or removing such a
link, this last-resort hook will disable navigation after the user
clicks a link.
- Closing behavior on Mac is now consistent with other platforms
- The main window is not shown until ready
- Minor code reorg to separate concerns and improve readability
The `scratch-gui` project saver uses `onbeforeunload` to request
confirmation before navigating away from an unsaved project.
Unfortunately Electron suppresses the confirmation dialog that browsers
would normally display. Instead, Electron offers a `will-prevent-unload`
event in the main process: this event fires when `onbeforeunload`
requests a confirmation dialog.
This change adds a handler for `will-prevent-unload` which displays a
quit confirmation dialog so that the overall behavior is similar to what
happens in a regular browser.
Match the versions of Webpack, Babel, and related plugins as used in
scratch-gui. That plus a few other tweaks means that this repository
builds the same with or without `npm ln scratch-gui`, and also means
that all syntax used in scratch-gui should build the same here.