From add63d2dded0da1857ffde0551d6b9d69b560736 Mon Sep 17 00:00:00 2001 From: Kevin Horecka Date: Fri, 6 Dec 2019 05:32:43 -0600 Subject: [PATCH] FancyZones: Added ability to use mouse only for interactions with zones (#729) --- src/modules/fancyzones/lib/FancyZones.cpp | 27 +++++++++++++++++++++- src/modules/fancyzones/lib/fancyzones.rc | Bin 5296 -> 5360 bytes 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/modules/fancyzones/lib/FancyZones.cpp b/src/modules/fancyzones/lib/FancyZones.cpp index dd5f467a4e..09fef91991 100644 --- a/src/modules/fancyzones/lib/FancyZones.cpp +++ b/src/modules/fancyzones/lib/FancyZones.cpp @@ -579,7 +579,32 @@ void FancyZones::MoveWindowsOnDisplayChange() noexcept void FancyZones::UpdateDragState(require_write_lock) noexcept { const bool shift = GetAsyncKeyState(VK_SHIFT) & 0x8000; - m_dragEnabled = m_settings->GetSettings().shiftDrag ? shift : !shift; + const bool mouseL = GetAsyncKeyState(VK_LBUTTON) & 0x8000; + const bool mouseR = GetAsyncKeyState(VK_RBUTTON) & 0x8000; + const bool mouseM = GetAsyncKeyState(VK_MBUTTON) & 0x8000; + const bool mouseX1 = GetAsyncKeyState(VK_XBUTTON1) & 0x8000; + const bool mouseX2 = GetAsyncKeyState(VK_XBUTTON2) & 0x8000; + + // Note, Middle, X1 and X2 can also be used in addition to R/L + bool mouse = mouseM | mouseX1 | mouseX2; + // If the user has swapped their Right and Left Buttons, use the "Right" equivalent + if (GetSystemMetrics(SM_SWAPBUTTON)) + { + mouse |= mouseL; + } + else + { + mouse |= mouseR; + } + + if (m_settings->GetSettings().shiftDrag) + { + m_dragEnabled = (shift | mouse); + } + else + { + m_dragEnabled = !(shift | mouse); + } } void FancyZones::CycleActiveZoneSet(DWORD vkCode) noexcept diff --git a/src/modules/fancyzones/lib/fancyzones.rc b/src/modules/fancyzones/lib/fancyzones.rc index 963aa95239fbf34cb797a84f0b8976d3bf9ee80f..a006552a2c419c25253279eb0050490139d513d7 100644 GIT binary patch delta 74 zcmdm>`9X7o8Ix^3LlJ`lLn1>SLnV;TW5@?$U4{anXeL80P`n5%o(mK&WhiDy1*%B` PvPysusB*J0Q>_pHg~$+j delta 12 TcmeyMxj}P-8Pn!6rYa!-BFO}j