35 void glibThread(
const void *);
36 gboolean timeoutHandler()
const;
37 gboolean initSession();
38 void handleInitSession(GObject *
object, GAsyncResult *res);
39 void handleSetPointerBarriers(
const GObject *
object, GAsyncResult *res);
40 void handleSessionClosed(XdpSession *session);
41 void handleDisabled(
const XdpInputCaptureSession *session,
const GVariant *option);
42 void handleActivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options);
44 handleDeactivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options);
45 void handleZonesChanged(XdpInputCaptureSession *session,
const GVariant *options);
48 static void sessionClosed(XdpSession *session,
const gpointer
data)
52 static void disabled(
const XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
56 static void activated(
57 const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options,
const gpointer
data
62 static void deactivated(
63 const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options,
69 static void zonesChanged(XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
75 enum class Signal : uint8_t
84 EiScreen *m_screen =
nullptr;
85 IEventQueue *m_events =
nullptr;
88 GMainLoop *m_glibMainLoop =
nullptr;
90 XdpPortal *m_portal =
nullptr;
91 XdpInputCaptureSession *m_session =
nullptr;
93 std::map<Signal, gulong> m_signals = {
94 {Signal::SessionClosed, 0},
95 {Signal::Disabled, 0},
96 {Signal::Activated, 0},
97 {Signal::Deactivated, 0},
98 {Signal::ZonesChanged, 0}
101 bool m_enabled =
false;
102 bool m_isActive =
false;
103 std::uint32_t m_activationId = 0;
105 std::vector<XdpInputCapturePointerBarrier *> m_barriers;