diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp index 5ac399c7..f6e91309 100644 --- a/src/managers/KeybindManager.cpp +++ b/src/managers/KeybindManager.cpp @@ -707,6 +707,8 @@ void CKeybindManager::changeworkspace(std::string args) { // remove constraints g_pInputManager->unconstrainMouse(); + g_pInputManager->m_bEmptyFocusCursorSet = false; + // if it's not internal, we will unfocus to prevent stuck focus if (!internal) g_pCompositor->focusWindow(nullptr); diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 7586247e..eade4bda 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -218,7 +218,7 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "crosshair", g_pCompositor->m_sWLRCursor); else wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "left_ptr", g_pCompositor->m_sWLRCursor); - + m_bEmptyFocusCursorSet = true; } diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp index f570efcb..5e3db515 100644 --- a/src/managers/input/InputManager.hpp +++ b/src/managers/input/InputManager.hpp @@ -25,6 +25,8 @@ struct STouchData { Vector2D touchSurfaceOrigin; }; +class CKeybindManager; + class CInputManager { public: @@ -161,6 +163,8 @@ private: // swipe void beginWorkspaceSwipe(); + + friend class CKeybindManager; }; inline std::unique_ptr g_pInputManager;