summaryrefslogtreecommitdiff
path: root/src/managers/input/InputManager.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-28 23:17:04 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-02-28 23:17:27 +0000
commit0e252d2c7770f712ed5395d75e31138abf0ea048 (patch)
treee6863fd4c68524f547c52ce02d8563f7bf967bf8 /src/managers/input/InputManager.cpp
parent5c93f6947a04163c6ea8299e8721b923bea2fb9f (diff)
Don't set surface cursors for overriden
Diffstat (limited to 'src/managers/input/InputManager.cpp')
-rw-r--r--src/managers/input/InputManager.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index e712f4af..f20aed29 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -308,14 +308,16 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) {
setCursorIconOnBorder(pFoundWindow);
}
- // if we're on an input deco, reset cursor
- if (!VECINRECT(m_vLastCursorPosFloored, pFoundWindow->m_vRealPosition.vec().x, pFoundWindow->m_vRealPosition.vec().y,
- pFoundWindow->m_vRealPosition.vec().x + pFoundWindow->m_vRealSize.vec().x, pFoundWindow->m_vRealPosition.vec().y + pFoundWindow->m_vRealSize.vec().y)) {
- wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "left_ptr", g_pCompositor->m_sWLRCursor);
- cursorSurfaceInfo.bUsed = false;
- } else if (!cursorSurfaceInfo.bUsed) {
- cursorSurfaceInfo.bUsed = true;
- wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, cursorSurfaceInfo.pSurface, cursorSurfaceInfo.vHotspot.x, cursorSurfaceInfo.vHotspot.y);
+ // if we're on an input deco, reset cursor. Don't on overriden
+ if (!m_bCursorImageOverriden) {
+ if (!VECINRECT(m_vLastCursorPosFloored, pFoundWindow->m_vRealPosition.vec().x, pFoundWindow->m_vRealPosition.vec().y,
+ pFoundWindow->m_vRealPosition.vec().x + pFoundWindow->m_vRealSize.vec().x, pFoundWindow->m_vRealPosition.vec().y + pFoundWindow->m_vRealSize.vec().y)) {
+ wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "left_ptr", g_pCompositor->m_sWLRCursor);
+ cursorSurfaceInfo.bUsed = false;
+ } else if (!cursorSurfaceInfo.bUsed) {
+ cursorSurfaceInfo.bUsed = true;
+ wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, cursorSurfaceInfo.pSurface, cursorSurfaceInfo.vHotspot.x, cursorSurfaceInfo.vHotspot.y);
+ }
}
if (*PFOLLOWMOUSE != 1 && !refocus) {