diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-01-09 14:48:01 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-01-21 12:32:04 +0100 |
commit | 10472dce9202e4460b2d908bdbe0cd65291f77e5 (patch) | |
tree | 4a0d970fcedb4e7b0b01c3f65cd9c7886473dfe0 /src/gui/kernel/qguiapplication.cpp | |
parent | f93c04e44a5bd08fea76a1147b1aa51953bce925 (diff) |
Unify input device hotplugging support for embedded
On embedded the mouse cursor will now appear and reappear regardless of
how the input handling code is loaded (via a generic plugin or compiled-in
to the platform plugin).
Instead of passing around QDeviceDiscovery instances that only works
when compiling-in the code into the platform plugin, introduce a new
internal central QInputDeviceManager. The single instance of this
provides a place to store any future input device related signals and
properties.
Also introduce mouse hotplugging support to linuxfb.
[ChangeLog][QtGui] The mouse cursor on Embedded Linux is now handling
hotplugging correctly with eglfs and linuxfb regardless of how the input
handling code is loaded (via a generic plugin or built in to the platform
plugin).
Change-Id: I147c1b04a193baf216598015264f2c06e1b20f84
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index a2953259ff..23deb2c4b2 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -75,6 +75,7 @@ #include "private/qwindow_p.h" #include "private/qcursor_p.h" #include "private/qopenglcontext_p.h" +#include "private/qinputdevicemanager_p.h" #include "private/qdnd_p.h" #include <qpa/qplatformthemefactory_p.h> @@ -164,6 +165,8 @@ static QBasicMutex applicationFontMutex; QFont *QGuiApplicationPrivate::app_font = 0; bool QGuiApplicationPrivate::obey_desktop_settings = true; +QInputDeviceManager *QGuiApplicationPrivate::m_inputDeviceManager = 0; + static qreal fontSmoothingGamma = 1.7; extern void qRegisterGuiVariant(); @@ -3470,6 +3473,16 @@ void QGuiApplicationPrivate::setMouseEventFlags(QMouseEvent *event, Qt::MouseEve event->caps |= (value & Qt::MouseEventFlagMask) << MouseFlagsShift; } +QInputDeviceManager *QGuiApplicationPrivate::inputDeviceManager() +{ + Q_ASSERT(QGuiApplication::instance()); + + if (!m_inputDeviceManager) + m_inputDeviceManager = new QInputDeviceManager(QGuiApplication::instance()); + + return m_inputDeviceManager; +} + #include "moc_qguiapplication.cpp" QT_END_NAMESPACE |