terminal/src/cascadia/TerminalSettings
Dustin L. Howett (MSFT) 499f24a29e
Rework and simplify selection in TermControl (#5096)
This commit rewrites selection handling at the TermControl layer.
Previously, we were keeping track of a number of redundant variables
that were easy to get out of sync.

The new selection model is as follows:

* A single left click will always begin a _pending_ selection operation
* A single left click will always clear a selection (#4477)
* A double left click will always begin a word selection
* A triple left click will always begin a line selection
* A selection will only truly start when the cursor moves a quarter of
  the smallest dimension of a cell (usually its width) in any direction
  _This eliminates the selection of a single cell on one click._
  (#4282, #5082)
* We now keep track of whether the selection has been "copied", or
  "updated" since it was last copied. If an endpoint moves, it is
  updated. For copy-on-select, it is only copied if it's updated.
  (#4740)

Because of this, we can stop tracking the position of the focus-raising
click, and whether it was part of click-drag operation. All clicks can
_become_ part of a click-drag operation if the user drags.

We can also eliminate the special handling of single cell selection at
the TerminalCore layer: since TermControl determines when to begin a
selection, TerminalCore no longer needs to know whether copy on select
is enabled _or_ whether the user has started and then backtracked over a
single cell. This is now implicit in TermControl.

Fixes #5082; Fixes #4477
2020-03-25 21:09:49 +00:00
..
IControlSettings.idl Rework and simplify selection in TermControl (#5096) 2020-03-25 21:09:49 +00:00
ICoreSettings.idl Rework and simplify selection in TermControl (#5096) 2020-03-25 21:09:49 +00:00
IKeyBindings.idl Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
KeyChord.cpp Apply audit mode to TerminalConnection/Core/Settings and WinCon… (#4016) 2020-01-03 10:44:27 -08:00
KeyChord.h Apply audit mode to TerminalConnection/Core/Settings and WinCon… (#4016) 2020-01-03 10:44:27 -08:00
KeyChord.idl Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
packages.config deps: upgrade CppWinRT to 2.0.200316.3, gsl to v2.1.0 (#4536) 2020-03-23 17:15:24 +00:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h teach wil about c++/winrt exceptions by including cppwinrt.h (#2927) 2019-09-30 15:52:27 -07:00
TerminalSettings.cpp Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TerminalSettings.def Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
terminalsettings.h Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TerminalSettings.idl Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
TerminalSettings.vcxproj Unify and clean up the common build properties (#3429) 2019-11-05 14:29:11 -08:00