input-capture/session: Start emulating new devices if already active

The client may not wait for devices to be created before enabling,
meaning we might activate the input capture session before the device
emulation is started. This would result in events silently being
dropped.

This helps with the flaky input-capture test case.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4128>
This commit is contained in:
Jonas Ådahl 2024-11-11 17:03:22 +01:00 committed by Marge Bot
parent 80f92e0a20
commit 4345ff6be4

View File

@ -223,6 +223,9 @@ ensure_eis_pointer (MetaInputCaptureSession *session)
eis_device_resume (eis_pointer);
session->eis_pointer = eis_pointer;
if (session->state == INPUT_CAPTURE_STATE_ACTIVATED)
eis_device_start_emulating (session->eis_pointer, session->activation_id);
}
static MetaAnonymousFile *
@ -294,6 +297,9 @@ ensure_eis_keyboard (MetaInputCaptureSession *session)
eis_device_resume (eis_keyboard);
session->eis_keyboard = eis_keyboard;
if (session->state == INPUT_CAPTURE_STATE_ACTIVATED)
eis_device_start_emulating (session->eis_keyboard, session->activation_id);
}
static void