layerrules: fix abovelock interactivity for touch input (#10253)

This commit is contained in:
Virt 2025-05-03 16:07:02 +02:00 committed by GitHub
parent 2d6ca96e07
commit cdf5736f1a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 1 deletions

View file

@ -270,6 +270,12 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus, bool mouse) {
foundSurface = foundLockSurface;
}
if (refocus) {
m_foundLSToFocus = pFoundLayerSurface;
m_foundWindowToFocus = pFoundWindow;
m_foundSurfaceToFocus = foundSurface;
}
g_pSeatManager->setPointerFocus(foundSurface, surfaceCoords);
g_pSeatManager->sendPointerMotion(time, surfaceCoords);

View file

@ -61,7 +61,8 @@ void CInputManager::onTouchDown(ITouch::SDownEvent e) {
}
}
if (g_pSessionLockManager->isSessionLocked()) {
// could have abovelock surface, thus only use lock if no ls found
if (g_pSessionLockManager->isSessionLocked() && m_foundLSToFocus.expired()) {
m_touchData.touchFocusLockSurface = g_pSessionLockManager->getSessionLockSurfaceForMonitor(PMONITOR->m_id);
if (!m_touchData.touchFocusLockSurface)
Debug::log(WARN, "The session is locked but can't find a lock surface");