diff options
author | vaxerski <[email protected]> | 2022-07-25 14:06:49 +0200 |
---|---|---|
committer | vaxerski <[email protected]> | 2022-07-25 14:06:49 +0200 |
commit | 3e6abaf680ac85daacc677836655e9aa222b1528 (patch) | |
tree | 9e1d54eb81d3f294bded73b0b330a92d6a354cde | |
parent | 6dc8c4b31048d225e20008553a3998b543399c49 (diff) | |
download | Hyprland-3e6abaf680ac85daacc677836655e9aa222b1528.tar.gz Hyprland-3e6abaf680ac85daacc677836655e9aa222b1528.zip |
fix some swipe issues
-rw-r--r-- | src/managers/KeybindManager.cpp | 4 | ||||
-rw-r--r-- | src/managers/KeybindManager.hpp | 4 | ||||
-rw-r--r-- | src/managers/input/Swipe.cpp | 32 |
3 files changed, 25 insertions, 15 deletions
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 62a4ed3b..8ea38088 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -193,7 +193,7 @@ bool CKeybindManager::handleKeybinds(const uint32_t& modmask, const std::string& return found; } -void CKeybindManager::shadowKeybinds(const xkb_keysym_t& doesntHave, const uint32_t& doesntHaveCode) { +void CKeybindManager::shadowKeybinds(const xkb_keysym_t& doesntHave, const int& doesntHaveCode) { // shadow disables keybinds after one has been triggered for (auto& k : m_lKeybinds) { @@ -215,7 +215,7 @@ void CKeybindManager::shadowKeybinds(const xkb_keysym_t& doesntHave, const uint3 } for (auto& pk : m_dPressedKeycodes) { - if (pk == (unsigned int)k.keycode) { + if (pk == k.keycode) { shadow = true; } diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index ea2f931a..8bd14512 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -31,14 +31,14 @@ public: void removeKeybind(uint32_t, const std::string&); uint32_t stringToModMask(std::string); void clearKeybinds(); - void shadowKeybinds(const xkb_keysym_t& doesntHave = 0, const uint32_t& doesntHaveCode = 0); + void shadowKeybinds(const xkb_keysym_t& doesntHave = 0, const int& doesntHaveCode = 0); std::unordered_map<std::string, std::function<void(std::string)>> m_mDispatchers; private: std::list<SKeybind> m_lKeybinds; std::deque<xkb_keysym_t> m_dPressedKeysyms; - std::deque<uint32_t> m_dPressedKeycodes; + std::deque<int> m_dPressedKeycodes; inline static std::string m_szCurrentSelectedSubmap = ""; diff --git a/src/managers/input/Swipe.cpp b/src/managers/input/Swipe.cpp index 19dca88b..e3c1b9ea 100644 --- a/src/managers/input/Swipe.cpp +++ b/src/managers/input/Swipe.cpp @@ -41,15 +41,21 @@ void CInputManager::onSwipeEnd(wlr_pointer_swipe_end_event* e) { if ((abs(m_sActiveSwipe.delta) < *PSWIPEDIST * *PSWIPEPERC && (*PSWIPEFORC == 0 || (*PSWIPEFORC != 0 && m_sActiveSwipe.avgSpeed < *PSWIPEFORC))) || abs(m_sActiveSwipe.delta) < 2) { // revert - if (m_sActiveSwipe.delta < 0) { - // to left - PWORKSPACEL->m_vRenderOffset = Vector2D({-m_sActiveSwipe.pMonitor->vecSize.x, 0}); + if (abs(m_sActiveSwipe.delta) < 2) { + PWORKSPACEL->m_vRenderOffset.setValueAndWarp(Vector2D(0,0)); + PWORKSPACER->m_vRenderOffset.setValueAndWarp(Vector2D(0,0)); + m_sActiveSwipe.pWorkspaceBegin->m_vRenderOffset.setValueAndWarp(Vector2D(0,0)); } else { - // to right - PWORKSPACER->m_vRenderOffset = Vector2D({m_sActiveSwipe.pMonitor->vecSize.x, 0}); + if (m_sActiveSwipe.delta < 0) { + // to left + PWORKSPACEL->m_vRenderOffset = Vector2D({-m_sActiveSwipe.pMonitor->vecSize.x, 0}); + } else { + // to right + PWORKSPACER->m_vRenderOffset = Vector2D({m_sActiveSwipe.pMonitor->vecSize.x, 0}); + } + + m_sActiveSwipe.pWorkspaceBegin->m_vRenderOffset = Vector2D(); } - - m_sActiveSwipe.pWorkspaceBegin->m_vRenderOffset = Vector2D(); } else if (m_sActiveSwipe.delta < 0) { // switch to left const auto RENDEROFFSET = PWORKSPACEL->m_vRenderOffset.vec(); @@ -122,9 +128,11 @@ void CInputManager::onSwipeUpdate(wlr_pointer_swipe_update_event* e) { PWORKSPACE->m_bForceRendering = true; - const auto PWORKSPACER = g_pCompositor->getWorkspaceByID(workspaceIDRight); + if (workspaceIDLeft != workspaceIDRight) { + const auto PWORKSPACER = g_pCompositor->getWorkspaceByID(workspaceIDRight); - PWORKSPACER->m_bForceRendering = true; + PWORKSPACER->m_bForceRendering = false; + } PWORKSPACE->m_vRenderOffset.setValueAndWarp(Vector2D(((- m_sActiveSwipe.delta) / *PSWIPEDIST) * m_sActiveSwipe.pMonitor->vecSize.x - m_sActiveSwipe.pMonitor->vecSize.x, 0)); m_sActiveSwipe.pWorkspaceBegin->m_vRenderOffset.setValueAndWarp(Vector2D(((- m_sActiveSwipe.delta) / *PSWIPEDIST) * m_sActiveSwipe.pMonitor->vecSize.x, 0)); @@ -140,9 +148,11 @@ void CInputManager::onSwipeUpdate(wlr_pointer_swipe_update_event* e) { PWORKSPACE->m_bForceRendering = true; - const auto PWORKSPACEL = g_pCompositor->getWorkspaceByID(workspaceIDLeft); + if (workspaceIDLeft != workspaceIDRight) { + const auto PWORKSPACEL = g_pCompositor->getWorkspaceByID(workspaceIDLeft); - PWORKSPACEL->m_bForceRendering = true; + PWORKSPACEL->m_bForceRendering = false; + } PWORKSPACE->m_vRenderOffset.setValueAndWarp(Vector2D(((- m_sActiveSwipe.delta) / *PSWIPEDIST) * m_sActiveSwipe.pMonitor->vecSize.x + m_sActiveSwipe.pMonitor->vecSize.x, 0)); m_sActiveSwipe.pWorkspaceBegin->m_vRenderOffset.setValueAndWarp(Vector2D(((- m_sActiveSwipe.delta) / *PSWIPEDIST) * m_sActiveSwipe.pMonitor->vecSize.x, 0)); |