diff options
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qinputdevicemanager.cpp | 24 | ||||
-rw-r--r-- | src/gui/kernel/qinputdevicemanager_p.h | 3 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/gui/kernel/qinputdevicemanager.cpp b/src/gui/kernel/qinputdevicemanager.cpp index 1a3e6b8119..d0dd8a4e7c 100644 --- a/src/gui/kernel/qinputdevicemanager.cpp +++ b/src/gui/kernel/qinputdevicemanager.cpp @@ -36,6 +36,25 @@ QT_BEGIN_NAMESPACE +/*! + \class QInputDeviceManager + \internal + + \brief QInputDeviceManager acts as a communication hub between QtGui and the input handlers. + + On embedded platforms the input handling code is either compiled into the platform + plugin or is loaded dynamically as a generic plugin without any interface. The input + handler in use may also change between each run (e.g. evdevmouse/keyboard/touch + vs. libinput). QWindowSystemInterface is too limiting when Qt (the platform plugin) is + acting as a windowing system, and is one way only. + + QInputDeviceManager solves this by providing a global object that is used to communicate + from the input handlers to the rest of Qt (e.g. the number of connected mice, which may + be important information for the cursor drawing code), and vice-versa (e.g. to indicate + to the input handler that a manual cursor position change was requested by the + application via QCursor::setPos and thus any internal state has to be updated accordingly). +*/ + QInputDeviceManager::QInputDeviceManager(QObject *parent) : QObject(*new QInputDeviceManagerPrivate, parent) { @@ -61,4 +80,9 @@ void QInputDeviceManagerPrivate::setDeviceCount(QInputDeviceManager::DeviceType } } +void QInputDeviceManager::setCursorPos(const QPoint &pos) +{ + emit cursorPositionChangeRequested(pos); +} + QT_END_NAMESPACE diff --git a/src/gui/kernel/qinputdevicemanager_p.h b/src/gui/kernel/qinputdevicemanager_p.h index cc55c8b4e5..15c84d1a82 100644 --- a/src/gui/kernel/qinputdevicemanager_p.h +++ b/src/gui/kernel/qinputdevicemanager_p.h @@ -68,8 +68,11 @@ public: int deviceCount(DeviceType type) const; + void setCursorPos(const QPoint &pos); + signals: void deviceListChanged(DeviceType type); + void cursorPositionChangeRequested(const QPoint &pos); }; QT_END_NAMESPACE |