terminal/src/cascadia/TerminalControl
msftbot[bot] a3d68d2b21
Tunnel F7 keypresses directly into special handlers in TermControl (#4807)
The Xaml input stack doesn't allow an application to suppress the "caret
browsing" dialog experience triggered when you press F7.

The official recommendation from the Xaml team is to catch F7 before we
hand it off.

This commit introduces a special F7 handler and an ad-hoc implementation of event bubbling.
Runtime classes implementing a custom IF7Listener interface are
considered during a modified focus parent walk to determine who can
handle F7 specifically.

If the recipient control handles F7, we suppress the message completely.

This event bubbler has some minor issues -- the search box will not be
able to receive F7 because its parent control implements the handler.
Since search is already mostly a text box, it doesn't _need_ special
caret browsing functionality as far as I can tell.

TermControl implements its OnF7Pressed handler by synthesizing a
keybindings event and an event to feed into Terminal Core directly.

It's not possible to create a synthetic KeyPressRoutedEvent; if it were,
I would have just popped one into the traditional input queue. :)

Fixes #638.
2020-03-05 20:35:46 +00:00
..
Resources Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
init.cpp Fix Search non-blocking follow-ups (#4028) 2019-12-20 17:35:31 -08:00
packages.config Combined changes to make the build work again (see inside) (#2945) 2019-09-30 10:39:55 -07:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h Add support for dragging and dropping paths onto the Terminal (#4323) 2020-01-30 20:13:57 +00:00
SearchBoxControl.cpp Fix Search non-blocking follow-ups (#4028) 2019-12-20 17:35:31 -08:00
SearchBoxControl.h Fix Search non-blocking follow-ups (#4028) 2019-12-20 17:35:31 -08:00
SearchBoxControl.idl Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
SearchBoxControl.xaml Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TermControl.cpp Tunnel F7 keypresses directly into special handlers in TermControl (#4807) 2020-03-05 20:35:46 +00:00
TermControl.h Tunnel F7 keypresses directly into special handlers in TermControl (#4807) 2020-03-05 20:35:46 +00:00
TermControl.idl Tunnel F7 keypresses directly into special handlers in TermControl (#4807) 2020-03-05 20:35:46 +00:00
TermControl.xaml Convert TermControl to .xaml (#4729) 2020-02-26 16:35:16 -08:00
TermControlAutomationPeer.cpp Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TermControlAutomationPeer.h Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TermControlAutomationPeer.idl Attach UiaRenderer and Fire Selection Changed Events (#2989) 2019-12-11 13:52:49 -08:00
TerminalControl.def Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
TerminalControl.vcxproj Replace TSFInputControl with a xaml file (#4743) 2020-02-28 19:32:19 +00:00
TerminalControl.vcxproj.filters Define Automation Properties for TermControl (#4732) 2020-02-27 16:37:56 -08:00
TSFInputControl.cpp Make Korean IME input more consistent (#4796) 2020-03-04 20:01:01 +00:00
TSFInputControl.h Make Korean IME input more consistent (#4796) 2020-03-04 20:01:01 +00:00
TSFInputControl.idl Make Korean IME input more consistent (#4796) 2020-03-04 20:01:01 +00:00
TSFInputControl.xaml Replace TSFInputControl with a xaml file (#4743) 2020-02-28 19:32:19 +00:00
XamlUiaTextRange.cpp hook up UIA tree to WPF control (#4548) 2020-02-24 23:17:55 +00:00
XamlUiaTextRange.h hook up UIA tree to WPF control (#4548) 2020-02-24 23:17:55 +00:00