35 void glibThread(
const void *);
36 gboolean timeoutHandler()
const;
37 gboolean initSession();
38 void setupSession(XdpInputCaptureSession *session);
39 void handleStart(GObject *
object, GAsyncResult *res);
40 void handleInitSession(GObject *
object, GAsyncResult *res);
41 void handleSetPointerBarriers(
const GObject *
object, GAsyncResult *res);
42 void handleSessionClosed(XdpSession *session);
43 void handleDisabled(
const XdpInputCaptureSession *session,
const GVariant *option);
44 void handleActivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options);
46 handleDeactivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options);
47 void handleZonesChanged(XdpInputCaptureSession *session,
const GVariant *options);
50 static void sessionClosed(XdpSession *session,
const gpointer
data)
54 static void disabled(
const XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
58 static void activated(
59 const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options,
const gpointer
data
64 static void deactivated(
65 const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options,
71 static void zonesChanged(XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
77 enum class Signal : uint8_t
86 EiScreen *m_screen =
nullptr;
87 IEventQueue *m_events =
nullptr;
88 int m_portalVersion = 0;
91 GMainLoop *m_glibMainLoop =
nullptr;
93 XdpPortal *m_portal =
nullptr;
94 XdpInputCaptureSession *m_session =
nullptr;
96 std::map<Signal, gulong> m_signals = {
97 {Signal::SessionClosed, 0},
98 {Signal::Disabled, 0},
99 {Signal::Activated, 0},
100 {Signal::Deactivated, 0},
101 {Signal::ZonesChanged, 0}
104 bool m_enabled =
false;
105 bool m_isActive =
false;
106 std::uint32_t m_activationId = 0;
108 std::vector<XdpInputCapturePointerBarrier *> m_barriers;