https://github.com/ValveSoftware/gamescope/issues/1410 -- diff --git a/src/Backends/WaylandBackend.cpp b/src/Backends/WaylandBackend.cpp index 6f578a2..a4deba2 100644 --- a/src/Backends/WaylandBackend.cpp +++ b/src/Backends/WaylandBackend.cpp @@ -1646,20 +1646,25 @@ namespace gamescope zwp_locked_pointer_v1_destroy( m_pLockedPointer ); m_pLockedPointer = nullptr; zwp_relative_pointer_v1_destroy( m_pRelativePointer ); m_pRelativePointer = nullptr; } else { assert( !m_pRelativePointer ); + // lmao + if (!m_Planes[0].GetSurface()) { + return; + } + m_pLockedPointer = zwp_pointer_constraints_v1_lock_pointer( m_pPointerConstraints, m_Planes[0].GetSurface(), m_pPointer, nullptr, ZWP_POINTER_CONSTRAINTS_V1_LIFETIME_PERSISTENT ); m_pRelativePointer = zwp_relative_pointer_manager_v1_get_relative_pointer( m_pRelativePointerManager, m_pPointer ); } m_InputThread.SetRelativePointer( bRelative ); UpdateCursor(); } } void CWaylandBackend::SetVisible( bool bVisible )