diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-08-30 17:23:35 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2023-08-30 17:23:35 +0200 |
| commit | c98a00678c1f3b051c2440b72f58cd9ecfdae70d (patch) | |
| tree | a2e37f1eecf618efe82c5d85438a363a351456d8 /src/managers/input/InputManager.cpp | |
| parent | b4f123d1f2af8e7b42c730789d863aa22ea9fb56 (diff) | |
input: fix xwayland constraint calcs
some minor adjustments, fixes #3028
Diffstat (limited to 'src/managers/input/InputManager.cpp')
| -rw-r--r-- | src/managers/input/InputManager.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 679c1bca..bdb5c527 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -1193,6 +1193,8 @@ void CInputManager::constrainMouse(SMouse* pMouse, wlr_pointer_constraint_v1* co // warp to the constraint recheckConstraint(pMouse); + constraintFromWlr(constraint)->active = true; + wlr_pointer_constraint_v1_send_activated(pMouse->currentConstraint); pMouse->hyprListener_commitConstraint.initCallback(&pMouse->currentConstraint->surface->events.commit, &Events::listener_commitConstraint, pMouse, "Mouse constraint commit"); @@ -1212,7 +1214,8 @@ void CInputManager::warpMouseToConstraintMiddle(SConstraint* pConstraint) { if (PWINDOW) { const auto RELATIVETO = PWINDOW->m_bIsX11 ? - g_pXWaylandManager->xwaylandToWaylandCoords({PWINDOW->m_uSurface.xwayland->x, PWINDOW->m_uSurface.xwayland->y}) / PWINDOW->m_fX11SurfaceScaledBy : + (PWINDOW->m_bIsMapped ? PWINDOW->m_vRealPosition.goalv() : + g_pXWaylandManager->xwaylandToWaylandCoords({PWINDOW->m_uSurface.xwayland->x, PWINDOW->m_uSurface.xwayland->y})) : PWINDOW->m_vRealPosition.goalv(); const auto HINTSCALE = PWINDOW->m_fX11SurfaceScaledBy; @@ -1234,8 +1237,7 @@ void CInputManager::unconstrainMouse() { const auto PCONSTRAINT = constraintFromWlr(g_pCompositor->m_sSeat.mouse->currentConstraint); warpMouseToConstraintMiddle(PCONSTRAINT); - PCONSTRAINT->hintSet = false; - PCONSTRAINT->positionHint = {-1, -1}; + PCONSTRAINT->active = false; g_pCompositor->m_sSeat.mouse->constraintActive = false; |
