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.
Recent versions of `npm` record sub-dependency version ranges
differently, though the actual modules installed have not changed. I'm
separating this into its own commit so it doesn't make other changes
harder to see.
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.
The old version of webpack takes a long time and then runs out of memory
when I add media library assets in `src/static`. The new version handles
it OK.