From e49a9973381f83945b960dcdfcb2fb6d4ed37221 Mon Sep 17 00:00:00 2001 From: Gwilherm Folliot Date: Sun, 26 Jan 2025 22:06:40 +0100 Subject: [PATCH] input-capture: hookup ZonesChanged signal --- src/input-capture.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/input-capture.c b/src/input-capture.c index 45e5c9fd1..d72637648 100644 --- a/src/input-capture.c +++ b/src/input-capture.c @@ -1115,6 +1115,36 @@ on_deactivated_cb (XdpDbusImplInputCapture *impl, } } +static void +on_zones_changed_cb (XdpDbusImplInputCapture *impl, + const char *session_id, + GVariant *options, + gpointer data) +{ + g_autoptr(XdpSession) session = xdp_session_lookup (session_id); + InputCaptureSession *input_capture_session; + + if (!IS_INPUT_CAPTURE_SESSION (session)) + { + g_critical ("Invalid session type for signal"); + return; + } + + input_capture_session = (InputCaptureSession*)session; + + switch (input_capture_session->state) + { + case INPUT_CAPTURE_SESSION_STATE_INIT: + case INPUT_CAPTURE_SESSION_STATE_ENABLED: + case INPUT_CAPTURE_SESSION_STATE_ACTIVE: + case INPUT_CAPTURE_SESSION_STATE_DISABLED: + pass_signal (impl, "ZonesChanged", session_id, options, data); + break; + case INPUT_CAPTURE_SESSION_STATE_CLOSED: + break; + } +} + static void input_capture_init (InputCapture *input_capture) { @@ -1130,6 +1160,7 @@ input_capture_init (InputCapture *input_capture) g_signal_connect (impl, "disabled", G_CALLBACK (on_disabled_cb), input_capture); g_signal_connect (impl, "activated", G_CALLBACK (on_activated_cb), input_capture); g_signal_connect (impl, "deactivated", G_CALLBACK (on_deactivated_cb), input_capture); + g_signal_connect (impl, "zones-changed", G_CALLBACK (on_zones_changed_cb), input_capture); } static void