mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-19 09:58:08 -05:00
Bugfix: only round to the nearest cell for selection (#18486)
## Summary of the Pull Request Fixes a bug where VT mouse mode would round to the nearest cell when clicking the mouse button. The fix is to round to the nearest cell only when we're selecting text. The other scenarios affected are: - clicking on a hyperlink - vt mouse mode - where the context menu is anchored Really the most notable ones were the first two. So now, we use the position of the cell we clicked on. We only round for selection. ## References and Relevant Issues Follow-up to #18106 ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed Opened Midnight Commander in Ubuntu and clicked between the two panes. - Before: threshold was too early to switch between panes - After: threshold is clearly separated between the outline of the two panes --------- Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
This commit is contained in:
@@ -241,7 +241,8 @@ namespace winrt::Microsoft::Terminal::Control::implementation
|
|||||||
const ::Microsoft::Terminal::Core::ControlKeyStates modifiers,
|
const ::Microsoft::Terminal::Core::ControlKeyStates modifiers,
|
||||||
const Core::Point pixelPosition)
|
const Core::Point pixelPosition)
|
||||||
{
|
{
|
||||||
const auto terminalPosition = _getTerminalPosition(til::point{ pixelPosition }, true);
|
// Un-rounded coordinates; we only round when selecting text
|
||||||
|
const auto terminalPosition = _getTerminalPosition(til::point{ pixelPosition }, false);
|
||||||
|
|
||||||
const auto altEnabled = modifiers.IsAltPressed();
|
const auto altEnabled = modifiers.IsAltPressed();
|
||||||
const auto shiftEnabled = modifiers.IsShiftPressed();
|
const auto shiftEnabled = modifiers.IsShiftPressed();
|
||||||
@@ -285,7 +286,8 @@ namespace winrt::Microsoft::Terminal::Control::implementation
|
|||||||
}
|
}
|
||||||
const auto isOnOriginalPosition = _lastMouseClickPosNoSelection == pixelPosition;
|
const auto isOnOriginalPosition = _lastMouseClickPosNoSelection == pixelPosition;
|
||||||
|
|
||||||
_core->LeftClickOnTerminal(terminalPosition,
|
// Rounded coordinates for text selection
|
||||||
|
_core->LeftClickOnTerminal(_getTerminalPosition(til::point{ pixelPosition }, true),
|
||||||
multiClickMapper,
|
multiClickMapper,
|
||||||
altEnabled,
|
altEnabled,
|
||||||
shiftEnabled,
|
shiftEnabled,
|
||||||
|
|||||||
Reference in New Issue
Block a user