From e714c5968a701ebf5871025bf0eeee45a3d1a406 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Wed, 10 May 2023 08:15:33 -0500 Subject: [PATCH 1/2] Don't even attempt to MoveContent to the same window you started in [Just don't go](https://youtu.be/jmIFwSKnuRM?t=102) Tracked in #14957 --- src/cascadia/TerminalApp/TerminalPage.cpp | 7 +++++++ src/cascadia/WindowsTerminal/AppHost.cpp | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cascadia/TerminalApp/TerminalPage.cpp b/src/cascadia/TerminalApp/TerminalPage.cpp index 3b36382a5dd..41e173232fc 100644 --- a/src/cascadia/TerminalApp/TerminalPage.cpp +++ b/src/cascadia/TerminalApp/TerminalPage.cpp @@ -2076,6 +2076,13 @@ namespace winrt::TerminalApp::implementation const auto windowId{ args.Window() }; if (!windowId.empty()) { + // if the windowId is the same as our name, do nothing + if (windowId == WindowProperties().WindowName() || + windowId == winrt::to_hstring(WindowProperties().WindowId())) + { + return true; + } + if (const auto terminalTab{ _GetFocusedTabImpl() }) { auto startupActions = terminalTab->BuildStartupActions(true); diff --git a/src/cascadia/WindowsTerminal/AppHost.cpp b/src/cascadia/WindowsTerminal/AppHost.cpp index 16be33a3db3..f7c16ee616b 100644 --- a/src/cascadia/WindowsTerminal/AppHost.cpp +++ b/src/cascadia/WindowsTerminal/AppHost.cpp @@ -1296,6 +1296,8 @@ void AppHost::_handleMoveContent(const winrt::Windows::Foundation::IInspectable& { winrt::Windows::Foundation::IReference windowBoundsReference{ nullptr }; + const winrt::hstring& targetWindow{ args.Window() }; + if (args.WindowPosition() && _window) { // The WindowPosition is in DIPs. We need to convert it to pixels. @@ -1351,7 +1353,7 @@ void AppHost::_handleMoveContent(const winrt::Windows::Foundation::IInspectable& windowBoundsReference = inDips.to_winrt_rect(); } - _windowManager.RequestMoveContent(args.Window(), args.Content(), args.TabIndex(), windowBoundsReference); + _windowManager.RequestMoveContent(targetWindow, args.Content(), args.TabIndex(), windowBoundsReference); } void AppHost::_handleAttach(const winrt::Windows::Foundation::IInspectable& /*sender*/, From f71494900d34d6546fdda981b3795c8a386d9f24 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Fri, 12 May 2023 13:39:38 -0500 Subject: [PATCH 2/2] revert src/cascadia/WindowsTerminal/AppHost.cpp --- src/cascadia/WindowsTerminal/AppHost.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/cascadia/WindowsTerminal/AppHost.cpp b/src/cascadia/WindowsTerminal/AppHost.cpp index 9d46a24438b..07f4c3e114d 100644 --- a/src/cascadia/WindowsTerminal/AppHost.cpp +++ b/src/cascadia/WindowsTerminal/AppHost.cpp @@ -1296,8 +1296,6 @@ void AppHost::_handleMoveContent(const winrt::Windows::Foundation::IInspectable& { winrt::Windows::Foundation::IReference windowBoundsReference{ nullptr }; - const winrt::hstring& targetWindow{ args.Window() }; - if (args.WindowPosition() && _window) { // The WindowPosition is in DIPs. We need to convert it to pixels. @@ -1353,7 +1351,7 @@ void AppHost::_handleMoveContent(const winrt::Windows::Foundation::IInspectable& windowBoundsReference = inDips.to_winrt_rect(); } - _windowManager.RequestMoveContent(targetWindow, args.Content(), args.TabIndex(), windowBoundsReference); + _windowManager.RequestMoveContent(args.Window(), args.Content(), args.TabIndex(), windowBoundsReference); } void AppHost::_handleAttach(const winrt::Windows::Foundation::IInspectable& /*sender*/,