diff options
| author | Lars Knoll <lars.knoll@nokia.com> | 2012-04-16 12:04:34 +0200 |
|---|---|---|
| committer | Lars Knoll <lars.knoll@nokia.com> | 2012-04-16 12:04:34 +0200 |
| commit | 9bd032355163d92cda5e7e59ecd21214b131f187 (patch) | |
| tree | 002fa12558505683143c7eb08949a3d225bf0712 /src/plugins/generic/evdevmouse/qevdevmousehandler.cpp | |
| parent | d037d25c3d5236623371cf051aaf6a9e59792ba7 (diff) | |
| parent | 41673c45dde2eb95ee21dd918235218399f2be2c (diff) | |
Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
configure
src/corelib/io/qurl.cpp
src/gui/kernel/qwindow.cpp
src/tools/moc/generator.cpp
src/widgets/kernel/qwidget_qpa.cpp
src/widgets/styles/qstyle.h
src/widgets/widgets/qtabbar.cpp
tests/auto/corelib/codecs/utf8/tst_utf8.cpp
Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
Diffstat (limited to 'src/plugins/generic/evdevmouse/qevdevmousehandler.cpp')
| -rw-r--r-- | src/plugins/generic/evdevmouse/qevdevmousehandler.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp b/src/plugins/generic/evdevmouse/qevdevmousehandler.cpp index 1821c2b06ba..5e2911a806e 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; } } |
