diff --git a/src/modules/MouseUtils/CursorWrap/dllmain.cpp b/src/modules/MouseUtils/CursorWrap/dllmain.cpp index 451c4e99bd..c270703743 100644 --- a/src/modules/MouseUtils/CursorWrap/dllmain.cpp +++ b/src/modules/MouseUtils/CursorWrap/dllmain.cpp @@ -84,7 +84,7 @@ private: bool m_disableWrapDuringDrag = true; // Default to true to prevent wrap during drag bool m_disableOnSingleMonitor = false; // Default to false int m_wrapMode = 0; // 0=Both (default), 1=VerticalOnly, 2=HorizontalOnly - int m_activationMode = 0; // 0=Always (default), 1=HoldingCtrl (disables wrap), 2=HoldingShift (disables wrap) + int m_activationMode = 0; // 0=Always (default), 1=HoldingCtrl (wraps only while held), 2=HoldingShift (wraps only while held) // Mouse hook HHOOK m_mouseHook = nullptr; @@ -689,23 +689,23 @@ private: if (g_cursorWrapInstance && g_cursorWrapInstance->m_hookActive) { - // Check activation mode to determine if wrapping should be disabled - // 0=Always, 1=HoldingCtrl (disables wrap when Ctrl held), 2=HoldingShift (disables wrap when Shift held) + // Check activation mode to determine if wrapping should happen. + // 0=Always, 1=HoldingCtrl (wraps only when Ctrl held), 2=HoldingShift (wraps only when Shift held) int activationMode = g_cursorWrapInstance->m_activationMode; - bool disableByKey = false; + bool shouldWrap = true; - if (activationMode == 1) // HoldingCtrl - disable wrap when Ctrl is held + if (activationMode == 1) // HoldingCtrl - wrap only when Ctrl is held { - disableByKey = (GetAsyncKeyState(VK_CONTROL) & 0x8000) != 0; + shouldWrap = (GetAsyncKeyState(VK_CONTROL) & 0x8000) != 0; } - else if (activationMode == 2) // HoldingShift - disable wrap when Shift is held + else if (activationMode == 2) // HoldingShift - wrap only when Shift is held { - disableByKey = (GetAsyncKeyState(VK_SHIFT) & 0x8000) != 0; + shouldWrap = (GetAsyncKeyState(VK_SHIFT) & 0x8000) != 0; } - if (disableByKey) + if (!shouldWrap) { - // Key is held, do not wrap - let normal behavior happen + // Activation key is not held, do not wrap - let normal behavior happen. return CallNextHookEx(nullptr, nCode, wParam, lParam); } diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index f2efe864b4..4b885e4e0f 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -2554,11 +2554,11 @@ From there, simply click on one of the supported files in the File Explorer and Holding Ctrl - CursorWrap: Activation mode - disable wrap when Ctrl held + CursorWrap: Activation mode - wrap only when Ctrl held Holding Shift - CursorWrap: Activation mode - disable wrap when Shift held + CursorWrap: Activation mode - wrap only when Shift held Mouse Pointer Crosshairs diff --git a/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs index cc54869100..853b77d336 100644 --- a/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/MouseUtilsViewModel.cs @@ -1241,7 +1241,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private bool _cursorWrapAutoActivate; private bool _cursorWrapDisableWrapDuringDrag; // Will be initialized in constructor from settings private int _cursorWrapWrapMode; // 0=Both, 1=VerticalOnly, 2=HorizontalOnly - private int _cursorWrapActivationMode; // 0=Always, 1=HoldingCtrl (disables wrap), 2=HoldingShift (disables wrap) + private int _cursorWrapActivationMode; // 0=Always, 1=HoldingCtrl (wraps only while held), 2=HoldingShift (wraps only while held) private bool _cursorWrapDisableOnSingleMonitor; // Disable cursor wrap when only one monitor is connected } }