From bbd4d1b1e4c428c5f1f1dcac47e15375e11b80c2 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Fri, 31 Mar 2023 15:49:12 -0500 Subject: [PATCH] Fix a crash in the rclick context menu (#15079) Due to a bad merge a few commits back. This event should have had a revoker. Probably regressed in #14851 --- src/cascadia/TerminalControl/TermControl.cpp | 3 +-- src/cascadia/TerminalControl/TermControl.h | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cascadia/TerminalControl/TermControl.cpp b/src/cascadia/TerminalControl/TermControl.cpp index 028971bd210..d772c6f1ecc 100644 --- a/src/cascadia/TerminalControl/TermControl.cpp +++ b/src/cascadia/TerminalControl/TermControl.cpp @@ -94,6 +94,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation _revokers.coreOpenHyperlink = _core.OpenHyperlink(winrt::auto_revoke, { get_weak(), &TermControl::_HyperlinkHandler }); _revokers.interactivityOpenHyperlink = _interactivity.OpenHyperlink(winrt::auto_revoke, { get_weak(), &TermControl::_HyperlinkHandler }); _revokers.interactivityScrollPositionChanged = _interactivity.ScrollPositionChanged(winrt::auto_revoke, { get_weak(), &TermControl::_ScrollPositionChanged }); + _revokers.ContextMenuRequested = _interactivity.ContextMenuRequested(winrt::auto_revoke, { get_weak(), &TermControl::_contextMenuHandler }); // "Bubbled" events - ones we want to handle, by raising our own event. _revokers.CopyToClipboard = _core.CopyToClipboard(winrt::auto_revoke, { get_weak(), &TermControl::_bubbleCopyToClipboard }); @@ -106,8 +107,6 @@ namespace winrt::Microsoft::Terminal::Control::implementation _revokers.PasteFromClipboard = _interactivity.PasteFromClipboard(winrt::auto_revoke, { get_weak(), &TermControl::_bubblePasteFromClipboard }); - _interactivity.ContextMenuRequested({ this, &TermControl::_contextMenuHandler }); - // Initialize the terminal only once the swapchainpanel is loaded - that // way, we'll be able to query the real pixel size it got on layout _layoutUpdatedRevoker = SwapChainPanel().LayoutUpdated(winrt::auto_revoke, [this](auto /*s*/, auto /*e*/) { diff --git a/src/cascadia/TerminalControl/TermControl.h b/src/cascadia/TerminalControl/TermControl.h index f06a50f3373..ef4bf00fdfa 100644 --- a/src/cascadia/TerminalControl/TermControl.h +++ b/src/cascadia/TerminalControl/TermControl.h @@ -373,6 +373,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation Control::ControlInteractivity::OpenHyperlink_revoker interactivityOpenHyperlink; Control::ControlInteractivity::ScrollPositionChanged_revoker interactivityScrollPositionChanged; Control::ControlInteractivity::PasteFromClipboard_revoker PasteFromClipboard; + Control::ControlInteractivity::ContextMenuRequested_revoker ContextMenuRequested; } _revokers{}; }; }