aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorvaxerski <[email protected]>2022-07-25 14:06:49 +0200
committervaxerski <[email protected]>2022-07-25 14:06:49 +0200
commit3e6abaf680ac85daacc677836655e9aa222b1528 (patch)
tree9e1d54eb81d3f294bded73b0b330a92d6a354cde
parent6dc8c4b31048d225e20008553a3998b543399c49 (diff)
downloadHyprland-3e6abaf680ac85daacc677836655e9aa222b1528.tar.gz
Hyprland-3e6abaf680ac85daacc677836655e9aa222b1528.zip
fix some swipe issues
-rw-r--r--src/managers/KeybindManager.cpp4
-rw-r--r--src/managers/KeybindManager.hpp4
-rw-r--r--src/managers/input/Swipe.cpp32
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));