From c6953329d569f5ab5d73f9d9d86b595e4d204964 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Fri, 10 Jun 2022 11:39:06 +0200 Subject: [PATCH] Added circlenext --- src/managers/KeybindManager.cpp | 14 +++++++++++++- src/managers/KeybindManager.hpp | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index ba4fa9b8..968b1585 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -26,6 +26,7 @@ CKeybindManager::CKeybindManager() { m_mDispatchers["togglespecialworkspace"] = toggleSpecialWorkspace; m_mDispatchers["forcerendererreload"] = forceRendererReload; m_mDispatchers["resizeactive"] = resizeActive; + m_mDispatchers["circlenext"] = circleNext; } void CKeybindManager::addKeybind(SKeybind kb) { @@ -868,4 +869,15 @@ void CKeybindManager::resizeActive(std::string args) { const int Y = std::stoi(y); g_pLayoutManager->getCurrentLayout()->resizeActiveWindow(Vector2D(X, Y)); -} \ No newline at end of file +} + +void CKeybindManager::circleNext(std::string) { + if (!g_pCompositor->windowValidMapped(g_pCompositor->m_pLastWindow)) + return; + + g_pCompositor->focusWindow(g_pCompositor->getNextWindowOnWorkspace(g_pCompositor->m_pLastWindow)); + + const auto MIDPOINT = g_pCompositor->m_pLastWindow->m_vRealPosition.goalv() + g_pCompositor->m_pLastWindow->m_vRealSize.goalv() / 2.f; + + wlr_cursor_warp(g_pCompositor->m_sWLRCursor, nullptr, MIDPOINT.x, MIDPOINT.y); +} diff --git a/src/managers/KeybindManager.hpp b/src/managers/KeybindManager.hpp index 093197b9..e0958250 100644 --- a/src/managers/KeybindManager.hpp +++ b/src/managers/KeybindManager.hpp @@ -56,6 +56,7 @@ private: static void toggleSpecialWorkspace(std::string); static void forceRendererReload(std::string); static void resizeActive(std::string); + static void circleNext(std::string); friend class CCompositor; };