summaryrefslogtreecommitdiffstats
path: root/src/serialport/qserialport_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialport/qserialport_unix.cpp')
-rw-r--r--src/serialport/qserialport_unix.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
index 37379e93..98d66224 100644
--- a/src/serialport/qserialport_unix.cpp
+++ b/src/serialport/qserialport_unix.cpp
@@ -118,14 +118,17 @@ public:
ReadNotifier(QSerialPortPrivate *d, QObject *parent)
: QSocketNotifier(d->descriptor, QSocketNotifier::Read, parent)
, dptr(d)
- {}
+ {
+ }
protected:
- bool event(QEvent *e) Q_DECL_OVERRIDE {
- bool ret = QSocketNotifier::event(e);
- if (ret)
+ bool event(QEvent *e) Q_DECL_OVERRIDE
+ {
+ if (e->type() == QEvent::SockAct) {
dptr->readNotification();
- return ret;
+ return true;
+ }
+ return QSocketNotifier::event(e);
}
private:
@@ -138,14 +141,17 @@ public:
WriteNotifier(QSerialPortPrivate *d, QObject *parent)
: QSocketNotifier(d->descriptor, QSocketNotifier::Write, parent)
, dptr(d)
- {}
+ {
+ }
protected:
- bool event(QEvent *e) Q_DECL_OVERRIDE {
- bool ret = QSocketNotifier::event(e);
- if (ret)
+ bool event(QEvent *e) Q_DECL_OVERRIDE
+ {
+ if (e->type() == QEvent::SockAct) {
dptr->completeAsyncWrite();
- return ret;
+ return true;
+ }
+ return QSocketNotifier::event(e);
}
private: