summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx')
-rw-r--r--src/plugins/platforms/qnx/qqnxbpseventfilter.cpp22
-rw-r--r--src/plugins/platforms/qnx/qqnxbpseventfilter.h6
2 files changed, 7 insertions, 21 deletions
diff --git a/src/plugins/platforms/qnx/qqnxbpseventfilter.cpp b/src/plugins/platforms/qnx/qqnxbpseventfilter.cpp
index 93bb2d3584..4ce38b9fdc 100644
--- a/src/plugins/platforms/qnx/qqnxbpseventfilter.cpp
+++ b/src/plugins/platforms/qnx/qqnxbpseventfilter.cpp
@@ -90,13 +90,7 @@ void QQnxBpsEventFilter::installOnEventDispatcher(QAbstractEventDispatcher *disp
if (navigator_request_events(0) != BPS_SUCCESS)
qWarning("QQNX: failed to register for navigator events");
- QAbstractEventDispatcher::EventFilter previousEventFilter = dispatcher->setEventFilter(dispatcherEventFilter);
-
- // the QPA plugin creates the event dispatcher so we are the first event
- // filter assert on that just in case somebody adds another event filter
- // in the QQnxIntegration constructor instead of adding a new section in here
- Q_ASSERT(previousEventFilter == 0);
- Q_UNUSED(previousEventFilter);
+ dispatcher->installNativeEventFilter(this);
}
void QQnxBpsEventFilter::registerForScreenEvents(QQnxScreen *screen)
@@ -137,19 +131,11 @@ void QQnxBpsEventFilter::unregisterForDialogEvents(QQnxFileDialogHelper *dialog)
qWarning("QQNX: attempting to unregister dialog that was not registered");
}
-bool QQnxBpsEventFilter::dispatcherEventFilter(void *message)
+bool QQnxBpsEventFilter::nativeEventFilter(const QByteArray &eventType, void *message, long *result)
{
- qBpsEventFilterDebug() << Q_FUNC_INFO;
-
- if (s_instance == 0)
- return false;
-
+ Q_UNUSED(eventType);
+ Q_UNUSED(result);
bps_event_t *event = static_cast<bps_event_t *>(message);
- return s_instance->bpsEventFilter(event);
-}
-
-bool QQnxBpsEventFilter::bpsEventFilter(bps_event_t *event)
-{
const int eventDomain = bps_event_get_domain(event);
qBpsEventFilterDebug() << Q_FUNC_INFO << "event=" << event << "domain=" << eventDomain;
diff --git a/src/plugins/platforms/qnx/qqnxbpseventfilter.h b/src/plugins/platforms/qnx/qqnxbpseventfilter.h
index aafca0f989..164cb0291b 100644
--- a/src/plugins/platforms/qnx/qqnxbpseventfilter.h
+++ b/src/plugins/platforms/qnx/qqnxbpseventfilter.h
@@ -44,6 +44,7 @@
#include <QObject>
#include <QHash>
+#include <QAbstractNativeEventFilter>
#include <bps/dialog.h>
@@ -58,7 +59,7 @@ class QQnxScreen;
class QQnxScreenEventHandler;
class QQnxVirtualKeyboardBps;
-class QQnxBpsEventFilter : public QObject
+class QQnxBpsEventFilter : public QObject, public QAbstractNativeEventFilter
{
Q_OBJECT
public:
@@ -76,8 +77,7 @@ public:
void unregisterForDialogEvents(QQnxFileDialogHelper *dialog);
private:
- static bool dispatcherEventFilter(void *message);
- bool bpsEventFilter(bps_event_t *event);
+ bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE;
bool handleNavigatorEvent(bps_event_t *event);