36 void glibThread(
void *);
37 gboolean timeoutHandler()
const;
38 gboolean initSession();
39 void handleInitSession(GObject *
object, GAsyncResult *res);
40 void handleSetPointerBarriers(
const GObject *
object, GAsyncResult *res);
41 void handleSessionClosed(XdpSession *session);
42 void handleDisabled(
const XdpInputCaptureSession *session,
const GVariant *option);
43 void handleActivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options);
45 handleDeactivated(
const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options);
46 void handleZonesChanged(XdpInputCaptureSession *session,
const GVariant *options);
49 static void sessionClosed(XdpSession *session,
const gpointer
data)
53 static void disabled(
const XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
57 static void activated(
58 const XdpInputCaptureSession *session,
const std::uint32_t activationId, GVariant *options,
const gpointer
data
63 static void deactivated(
64 const XdpInputCaptureSession *session,
const std::uint32_t activationId,
const GVariant *options,
70 static void zonesChanged(XdpInputCaptureSession *session,
const GVariant *options,
const gpointer
data)
76 enum class Signal : uint8_t
85 EiScreen *m_screen =
nullptr;
86 IEventQueue *m_events =
nullptr;
89 GMainLoop *m_glibMainLoop =
nullptr;
91 XdpPortal *m_portal =
nullptr;
92 XdpInputCaptureSession *m_session =
nullptr;
94 std::map<Signal, gulong> m_signals = {
95 {Signal::SessionClosed, 0},
96 {Signal::Disabled, 0},
97 {Signal::Activated, 0},
98 {Signal::Deactivated, 0},
99 {Signal::ZonesChanged, 0}
102 bool m_enabled =
false;
103 bool m_isActive =
false;
104 std::uint32_t m_activationId = 0;
106 std::vector<XdpInputCapturePointerBarrier *> m_barriers;