feat: Set onbeforeunload to avoid losing the current terminal session with Ctrl+W #23
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
As an Emacs user (and co-maintainer of several packages), I extensively use Gitpod Terminal Browser in multiple occasions. Gitpod Terminal is a very nice tool!
— even if the README states that "it is not ready for production use", I guess it's pretty close 👍
Motivation of this PR: given the Ctrl+W is a very typical Emacs shortcut that must be avoided when using Gitpod (because it amounts to stopping the workspace and losing the ambient session), this small feature appears to be very important for Gitpod+Terminal users.
BTW I followed advice from https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event:
Then tested the feature successfully on Firefox ESR (under Debian Stable).
Cc @filiptronicek @mustard-mh @loujaybee @axonasif WDYT?
Related Issue(s)
Fixes #gitpod-io/gitpod#18416
How to test
https://gitpod.io/new/?autostart=false&useLatest=true&editor=xterm#https://github.com/gitpod-io/xterm-web-ide/pull/23
./validate.sh
(after applying fix: validate.sh was incomplete for testing #23 #24)https://debug-…
gitpod instance (and click Dismiss on the dialog)window.onbeforeunload
is notnull
Documentation
/hold