From 08a981d7b71e67309c8559cf51be65974bb0ddb2 Mon Sep 17 00:00:00 2001 From: penguin-sophist <30559935+penguin-sophist@users.noreply.github.com> Date: Tue, 25 Nov 2025 16:46:14 +0100 Subject: [PATCH] Fix negative delta scroll (#19573) This fixes the sign extension from 16 to 32 bit by casting from the unsigned to the signed type first. Closes #19391 Closes #19484 (cherry picked from commit fb75fb56c0e83e6bb5a4f40b8b171b0a4ab51f8b) Service-Card-Id: PVTI_lADOAF3p4s4BBcTlzghttY4 Service-Version: 1.24 --- src/cascadia/WindowsTerminal/IslandWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cascadia/WindowsTerminal/IslandWindow.cpp b/src/cascadia/WindowsTerminal/IslandWindow.cpp index 55d46abd68..e627bd4495 100644 --- a/src/cascadia/WindowsTerminal/IslandWindow.cpp +++ b/src/cascadia/WindowsTerminal/IslandWindow.cpp @@ -624,7 +624,7 @@ void IslandWindow::_OnGetMinMaxInfo(const WPARAM /*wParam*/, const LPARAM lParam const auto scale = GetCurrentDpiScale(); const winrt::Windows::Foundation::Point real{ relative.x / scale, relative.y / scale }; - winrt::Microsoft::Terminal::Core::Point wheelDelta{ 0, static_cast(HIWORD(wparam)) }; + winrt::Microsoft::Terminal::Core::Point wheelDelta{ 0, std::bit_cast(HIWORD(wparam)) }; if (message == WM_MOUSEHWHEEL) { std::swap(wheelDelta.X, wheelDelta.Y);