summaryrefslogtreecommitdiffstats
path: root/src/plugins/generic/evdevmouse
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/generic/evdevmouse')
-rw-r--r--src/plugins/generic/evdevmouse/evdevmouse.pro4
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousehandler.cpp19
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.cpp8
-rw-r--r--src/plugins/generic/evdevmouse/qevdevmousemanager.h4
4 files changed, 26 insertions, 9 deletions
diff --git a/src/plugins/generic/evdevmouse/evdevmouse.pro b/src/plugins/generic/evdevmouse/evdevmouse.pro
index f322a5bd1a..fb9c0e71b8 100644
--- a/src/plugins/generic/evdevmouse/evdevmouse.pro
+++ b/src/plugins/generic/evdevmouse/evdevmouse.pro
@@ -17,4 +17,6 @@ SOURCES = main.cpp \
OTHER_FILES += \
evdevmouse.json
-LIBS += $$QMAKE_LIBS_LIBUDEV
+contains(QT_CONFIG, libudev) {
+ LIBS += $$QMAKE_LIBS_LIBUDEV
+}
diff --git a/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
index 1821c2b06b..5e2911a806 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
+++ b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp
@@ -48,7 +48,6 @@
#include <qplatformdefs.h>
#include <private/qcore_unix_p.h> // overrides QT_OPEN
-#include <QtPlatformSupport/private/qudevicehelper_p.h>
#include <errno.h>
@@ -146,16 +145,20 @@ void QEvdevMouseHandler::readMouseData()
bool pendingMouseEvent = false;
int eventCompressCount = 0;
forever {
- n = QT_READ(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
+ int result = QT_READ(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
- if (n == 0) {
+ if (result == 0) {
qWarning("Got EOF from the input device.");
return;
- } else if (n < 0 && (errno != EINTR && errno != EAGAIN)) {
- qWarning("Could not read from input device: %s", strerror(errno));
- return;
- } else if (n % sizeof(buffer[0]) == 0) {
- break;
+ } else if (result < 0) {
+ if (errno != EINTR && errno != EAGAIN) {
+ qWarning("Could not read from input device: %s", strerror(errno));
+ return;
+ }
+ } else {
+ n += result;
+ if (n % sizeof(buffer[0]) == 0)
+ break;
}
}
diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
index f8e77abe55..2120b1540f 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.cpp
@@ -56,7 +56,11 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
{
Q_UNUSED(key);
+#ifndef QT_NO_LIBUDEV
bool useUDev = true;
+#else
+ bool useUDev = false;
+#endif // QT_NO_LIBUDEV
QStringList args = specification.split(QLatin1Char(':'));
QStringList devices;
@@ -77,6 +81,9 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
foreach (const QString &device, devices)
addMouse(device);
+#ifdef QT_NO_LIBUDEV
+ Q_UNUSED(useUDev)
+#else
if (useUDev) {
#ifdef QT_QPA_MOUSEMANAGER_DEBUG
qWarning() << "Use UDev for device discovery";
@@ -94,6 +101,7 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
connect(m_udeviceHelper, SIGNAL(deviceRemoved(QString,QUDeviceTypes)), this, SLOT(removeMouse(QString)));
}
}
+#endif // QT_NO_LIBUDEV
}
QEvdevMouseManager::~QEvdevMouseManager()
diff --git a/src/plugins/generic/evdevmouse/qevdevmousemanager.h b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
index a42257b6a2..f51bd455e8 100644
--- a/src/plugins/generic/evdevmouse/qevdevmousemanager.h
+++ b/src/plugins/generic/evdevmouse/qevdevmousemanager.h
@@ -44,7 +44,9 @@
#include "qevdevmousehandler.h"
+#ifndef QT_NO_LIBUDEV
#include <QtPlatformSupport/private/qudevicehelper_p.h>
+#endif // QT_NO_LIBUDEV
#include <QObject>
#include <QHash>
@@ -68,7 +70,9 @@ private slots:
private:
QString m_spec;
QHash<QString,QEvdevMouseHandler*> m_mice;
+#ifndef QT_NO_LIBUDEV
QUDeviceHelper *m_udeviceHelper;
+#endif // QT_NO_LIBUDEV
};
QT_END_HEADER