Add a preference to select the preferred AltGr heuristic. This replaces the change from 1.52, which prevented the use of Ctrl-Alt-... on all platforms. The new preference takes one of the following values:
null: Autodetect based on navigator.locale: ‘en-us’ => ‘none’, else => ‘right-alt’ ‘none’: Disable any AltGr related munging. ‘ctrl-alt’: Assume Ctrl+Alt means AltGr. ‘left-alt’: Assume left Alt means AltGr. ‘right-alt’: Assume right Alt means AltGr.
The default value is null. Autodection won't work in many cases, and the left-alt/right-alt tracking will have issues if the window loses focus while the alt key is down, but this may be the best we can do on the web.
Assume that Ctrl-Alt-[Printable] means AltGr-[Printable]. After this change, we ignore the ctrl/alt modifiers when they appear in keydown, leaving it up to the browser to send the correct key code in the keypress event. This fixes a longstanding issue with international keyboards where users could not type characters/symbols that required use of AltGr.
We will still have trouble on the mac, which does not set Ctrl+Alt when AltGr is used.
Fix for issue where cursor would dissappear at non-100% zoom levels.
Prevent navigation via media keys.
Capture fullscreen ESC.
Fix mouse wheel scrolling in FF.
Add a ‘ctrl-c-copy’ preference. When this is set to false, the default setting, Ctrl-C will always send ^C while Ctrl-Shift-C will copy if there is an active selection and send ^C if not.
When ‘ctrl-c-copy’ set to true the meaning of the shift key is reversed.
On the open web, the only reliable cross-browser configuration is with ctrl-c-copy set to true, as this allows the browser's built-in Ctrl-C handler to do its job. Embedders can call term.getPrefs().changeDefault( ‘ctrl-c-copy’, true) to adjust the default preference value in these situations.
Previously we allowed “local” selection (that which happens by default in Chrome) to stay enabled for mouse mode 1001 (report mouseup/down only). This caused a few issues. I didn't realize at the time that emacs used this mouseup/down positions to set an active region, which conflicts with the local selection. You tend wind up with a confusing partial overlap of the two selections. Additionally, with copy-on-select enabled, the mouseup event was consumed by the terminal and never sent to the host.
This change disables local selection when we're in mode 1001. Local selection was disabled in mode 1002, report mousedown/up/movement, which is preferred by vi.
Our “mouse-cell-motion-trick” was all about allowing local selection in mode 1002, so that's been removed too. I doubt this preference was widely used.
The change adds the ability to use alt-click to override the current mouse state, so that you can make a local selection even while in mode 1001/1002. Alt was chosen as its the only modifier key which can‘t be sent with a mouse event, though if you’re depending on alt === meta, you'll lose the ability to send meta-mouse sequences. If your local window manager already maps alt-click to something, then you can add any other modifier in addition to alt (say, alt-ctrl-mousedown) to defeat your existing binding.