diff options
Diffstat (limited to 'src/gui/kernel/qinputdevicemanager.cpp')
-rw-r--r-- | src/gui/kernel/qinputdevicemanager.cpp | 24 |
1 files changed, 24 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 |