terminal/src/cascadia/TerminalControl
Dustin L. Howett 3a27386e25
(1.9 port) Fix a number of shutdown crashes in TermControl (#10117)
1. The TSFInputControl may get a layout event after it has been removed
   from service (and no longer has a XAML tree)
   * Two fixes:
      * first, guard the layour updater from accessing detached xaml
	objects
      * second, shut down all pending throttled functions during close
	(not destruction!¹)
2. The TermControlAutomationPeer may be destructed before its events
   fire.
3. The TermControlAutomationPeer may receive a notification after it has
   been detached from XAML (and therefore has no dispatcher).

¹ Close happens before the control is removed from the XAML tree;
destruction happens some time later. We must detach all UI-bound events
in Close so that they don't fire between when we detach and when we
destruct.

Fixes MSFT-32496693
Fixes MSFT-32496158
Fixes MSFT-32509759
Fixes MSFT-32871913

(cherry picked from commit 661fde5937)
2021-05-18 17:36:40 -05:00
..
dll Implement PGO in pipelines for AMD64 architecture; supply training test scenarios (#10071) 2021-05-13 21:12:30 +00:00
Resources/en-US Introduce read-only panes (#8867) 2021-02-08 18:03:55 +00:00
ControlCore.cpp Add a setting to disable URL detection (#10022) 2021-05-17 04:20:09 +00:00
ControlCore.h Use DComp surface handle for Swap Chain management (#10023) 2021-05-12 11:54:17 -05:00
ControlCore.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
ControlInteractivity.cpp First three interactivity fixes (#9980) 2021-05-04 22:54:02 +00:00
ControlInteractivity.h First three interactivity fixes (#9980) 2021-05-04 22:54:02 +00:00
ControlInteractivity.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.cpp Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.h Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
EventArgs.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
IControlAppearance.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
IControlSettings.idl Add support for a profile to specify an "unfocused" appearance (#8392) 2021-04-08 22:46:16 +00:00
ICoreState.idl Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
IDirectKeyListener.idl Move events out of TermControl.h ; Use TYPED_EVENT in more places (#9526) 2021-03-18 22:02:39 +00:00
IKeyBindings.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
IMouseWheelListener.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
init.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
KeyChord.cpp Add support for the win key in keybindings (#9783) 2021-04-15 16:52:28 +00:00
KeyChord.h Add support for the win key in keybindings (#9783) 2021-04-15 16:52:28 +00:00
KeyChord.idl Add support for the win key in keybindings (#9783) 2021-04-15 16:52:28 +00:00
packages.config Update C++/WinRT to 2.0.210309.3 (#9437) 2021-03-10 16:04:59 -06:00
pch.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
pch.h Move events out of TermControl.h ; Use TYPED_EVENT in more places (#9526) 2021-03-18 22:02:39 +00:00
SearchBoxControl.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
SearchBoxControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
TermControl.cpp (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TermControl.h (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TermControl.idl Show a preview of the control in the SUI (#9527) 2021-05-16 21:26:47 -05:00
TermControl.xaml Fix tab and hyperlink tooltips to wrap long text (#9913) 2021-04-21 15:40:17 +00:00
TermControlAutomationPeer.cpp (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TermControlAutomationPeer.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TermControlAutomationPeer.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TerminalControlLib.vcxproj Split TermControl into a Core, Interactivity, and Control layer (#9820) 2021-04-27 15:50:45 +00:00
ThrottledFunc.h Resolve circular reference in ThrottledFunc (#9729) 2021-04-06 19:07:49 +00:00
TSFInputControl.cpp (1.9 port) Fix a number of shutdown crashes in TermControl (#10117) 2021-05-18 17:36:40 -05:00
TSFInputControl.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.idl Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
TSFInputControl.xaml Auto-format our XAML files and enforce in CI (#9589) 2021-03-29 17:09:38 -05:00
XamlUiaTextRange.cpp Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00
XamlUiaTextRange.h Rename Microsoft.Terminal.TerminalControl to .Control; Split into dll & lib (#9472) 2021-03-17 20:47:24 +00:00