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
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");