From 4995af3dc1cc600b57fcdd953734a13b9b1a425f Mon Sep 17 00:00:00 2001 From: MQY <3463526515@qq.com> Date: Tue, 5 Aug 2025 05:09:08 +0800 Subject: [PATCH] Prevent cursor repositioning during mouse selection (#19182) - Modify the cursor repositioning logic to check if a selection is in progress - Only reposition the cursor when the mouse is used for positioning, not during selection operations Closes #19181 (cherry picked from commit 88ab154f2227a3d8f213c1604ac19c8fb8dc5148) Service-Card-Id: PVTI_lADOAF3p4s4AxadtzgdSbu4 Service-Version: 1.23 --- src/cascadia/TerminalControl/ControlCore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cascadia/TerminalControl/ControlCore.cpp b/src/cascadia/TerminalControl/ControlCore.cpp index 873997702e..b4d71d5d76 100644 --- a/src/cascadia/TerminalControl/ControlCore.cpp +++ b/src/cascadia/TerminalControl/ControlCore.cpp @@ -2064,7 +2064,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation _terminal->MultiClickSelection(terminalPosition, mode); selectionNeedsToBeCopied = true; } - else if (_settings->RepositionCursorWithMouse()) // This is also mode==Char && !shiftEnabled + else if (_settings->RepositionCursorWithMouse() && !selectionNeedsToBeCopied) // Don't reposition cursor if this is part of a selection operation { _repositionCursorWithMouse(terminalPosition); }