terminal/src/cascadia
James Holderness 7b7dea009c
Consolidate the interfaces for setting VT input modes (#11384)
Instead of having a separate method for setting each mouse and keyboard
mode, this PR consolidates them all into a single method which takes a
mode parameter, and stores the modes in a `til::enumset` rather than
having a separate `bool` for each mode.

This enables us to get rid of a lot of boilerplate code, and makes the
code easier to extend when we want to introduce additional modes in the
future. It'll also makes it easier to read back the state of the various
modes when implementing the `DECRQM` query.

Most of the complication is in the `TerminalInput` class, which had to
be adjusted to work with an `enumset` in place of all the `bool` fields.
For the rest, it was largely a matter of replacing calls to all the old
mode setting methods with the new `SetInputMode` method, and deleting a
bunch of unused code.

One thing worth mentioning is that the `AdaptDispatch` implementation
used to have a `_ShouldPassThroughInputModeChange` method that was
called after every mode change. This code has now been moved up into the
`SetInputMode` implementation in `ConhostInternalGetSet` so it's just
handled in one place. Keeping this out of the dispatch class will also
be beneficial for sharing the implementation with `TerminalDispatch`.

## Validation

The updated interface necessitated some adjustments to the tests in
`AdapterTest` and `MouseInputTest`, but the essential structure of the
tests remains unchanged, and everything still passes.

I've also tested the keyboard and mouse modes in Vttest and confirmed
they still work at least as well as they did before (both conhost and
Windows Terminal), and I tested the alternate scroll mode manually
(conhost only).

Simplifying the `ConGetSet` and `ITerminalApi` is also part of the plan
to de-duplicate the `AdaptDispatch` and `TerminalDispatch`
implementation (#3849).
2021-10-26 21:12:22 +00:00
..
CascadiaPackage Enable DefApp hooks for stable (#11423) 2021-10-06 11:32:14 +00:00
inc Only access ControlInteractivity through the projection (#10051) 2021-07-19 11:59:30 -05:00
LocalTests_SettingsModel Implement basic profile matching (#11390) 2021-10-08 00:40:10 +00:00
LocalTests_TerminalApp Fix failing TestHostApp unit tests (#11394) 2021-10-05 18:21:03 +00:00
PublicTerminalCore Implement Keyboard Selection (#10824) 2021-09-23 12:24:32 -07:00
Remoting Persist window layout cont. save multiple windows (#11083) 2021-09-27 21:18:39 +00:00
ShellExtension Properly escape constructed wt command-lines (#11314) 2021-09-24 16:17:16 +00:00
TerminalApp Make sure the infobar is inserted before the tab content, not on top of (#11609) 2021-10-26 20:12:22 +00:00
TerminalAzBridge Upgrade to C++/WinRT 2.0.210825.3 (#11188) 2021-09-10 21:33:13 +00:00
TerminalConnection Add even MORE logging for defterm (#11537) 2021-10-19 13:29:18 -07:00
TerminalControl Adds exception handling of uri creation in profile background image update (#11542) 2021-10-25 11:17:18 +00:00
TerminalCore Consolidate the interfaces for setting VT input modes (#11384) 2021-10-26 21:12:22 +00:00
TerminalSettingsEditor Ensure the background image path is displayed in the settings UI (#11580) 2021-10-25 11:17:48 +00:00
TerminalSettingsModel Fixed VsDevCmd command line quoting (#11554) 2021-10-20 21:57:55 +02:00
UnitTests_Control Implement the Delta E algorithm to improve color perception (#11095) 2021-10-07 22:43:17 +00:00
UnitTests_Remoting Persist window layout cont. save multiple windows (#11083) 2021-09-27 21:18:39 +00:00
UnitTests_TerminalCore Implement the Delta E algorithm to improve color perception (#11095) 2021-10-07 22:43:17 +00:00
ut_app Enable fast floating point model and fast debug linking (#11466) 2021-10-11 21:02:15 +00:00
WindowsTerminal Try to fix crash on close with saving enabled (#11440) 2021-10-19 17:12:18 -07:00
WindowsTerminal_UIATests Enable /Zc:preprocessor (#10593) 2021-07-13 23:00:11 +00:00
WindowsTerminalUniversal Update to MUX 2.7 (#11240) 2021-09-20 22:08:55 +00:00
WinRTUtils Replace the UWP file export with the shell32 one (#11365) 2021-10-01 18:33:22 +00:00
WpfTerminalControl wpf: make sure to pack api-ms-win-core-synch-l1-2-0 (#10587) 2021-07-08 10:31:59 -05:00
WpfTerminalTestNetCore wpf: make sure to pack api-ms-win-core-synch-l1-2-0 (#10587) 2021-07-08 10:31:59 -05:00
wt Upgrade Windows SDK to 19041 (#10118) 2021-05-20 16:04:25 +00:00
CascadiaResources.build.items Update Cascadia Code to 2106.17 (#10455) 2021-06-18 20:47:19 +00:00