input: ensure seat grabs from exclusive layers can be dismissed (#10418)
This commit is contained in:
parent
2946009006
commit
2aa21625bd
1 changed files with 6 additions and 0 deletions
|
|
@ -607,6 +607,12 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) {
|
||||||
foundSurface = nullptr;
|
foundSurface = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Releases any seat grabs after a click outside of them not handled by an earlier case (notably exclusive layers).
|
||||||
|
if ((m_hardInput || refocus) && g_pSeatManager->m_seatGrab && !foundSurface) {
|
||||||
|
g_pSeatManager->setGrab(nullptr);
|
||||||
|
return; // setGrab will refocus
|
||||||
|
}
|
||||||
|
|
||||||
g_pSeatManager->setPointerFocus(foundSurface, surfaceLocal);
|
g_pSeatManager->setPointerFocus(foundSurface, surfaceLocal);
|
||||||
g_pSeatManager->sendPointerMotion(time, surfaceLocal);
|
g_pSeatManager->sendPointerMotion(time, surfaceLocal);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue