/* SPDX-FileCopyrightText: 2010 Andriy Rysin SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include "x11_helper.h" #include #include class QTimer; class UdevDeviceNotifier; class XInputEventNotifier : public XEventNotifier { Q_OBJECT public: explicit XInputEventNotifier(QWidget *parent = nullptr); void start() override; void stop() override; int registerForNewDeviceEvent(Display *dpy); Q_SIGNALS: void newKeyboardDevice(); void newPointerDevice(); protected: bool processOtherEvents(xcb_generic_event_t *event) override; private: int getNewDeviceEventType(xcb_generic_event_t *event); int xinputEventType; Display *display; UdevDeviceNotifier *udevNotifier; QTimer *keyboardNotificationTimer; QTimer *mouseNotificationTimer; };