[FancyZones] Changed Shift key capture method (#4274)

* Used windows hook to capture shift key instead of getting state of key on window move
This commit is contained in:
Yevhenii Holovachov
2020-06-17 16:06:16 +03:00
committed by GitHub
parent 698e5ec6ea
commit da38e6a23d
7 changed files with 127 additions and 13 deletions

View File

@@ -2,18 +2,20 @@
interface IFancyZonesSettings;
interface IZoneWindow;
interface SecondaryMouseButtonsHook;
class SecondaryMouseButtonsHook;
class ShiftKeyHook;
class WindowMoveHandler
{
public:
WindowMoveHandler(const winrt::com_ptr<IFancyZonesSettings>& settings, SecondaryMouseButtonsHook* mouseHook);
WindowMoveHandler(const winrt::com_ptr<IFancyZonesSettings>& settings, SecondaryMouseButtonsHook* mouseHook, ShiftKeyHook* shiftHook);
~WindowMoveHandler();
bool InMoveSize() const noexcept;
bool IsDragEnabled() const noexcept;
void OnMouseDown() noexcept;
void OnShiftChangeState(bool state) noexcept; //True for shift down event false for shift up
void MoveSizeStart(HWND window, HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IZoneWindow>>& zoneWindowMap) noexcept;
void MoveSizeUpdate(HMONITOR monitor, POINT const& ptScreen, const std::unordered_map<HMONITOR, winrt::com_ptr<IZoneWindow>>& zoneWindowMap) noexcept;