summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.cpp47
-rw-r--r--src/gui/kernel/qplatformnativeinterface_qpa.h3
2 files changed, 50 insertions, 0 deletions
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.cpp b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
index f9ddd1f72a..626f6a1e51 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.cpp
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.cpp
@@ -106,4 +106,51 @@ void QPlatformNativeInterface::setWindowProperty(QPlatformWindow *window, const
Q_UNUSED(value);
}
+/*!
+ \typedef QPlatformNativeInterface::EventFilter
+ \since 5.0
+
+ A function with the following signature that can be used as an
+ event filter:
+
+ \code
+ bool myEventFilter(void *message, long *result);
+ \endcode
+
+ \sa setEventFilter()
+*/
+
+/*!
+ \fn EventFilter QPlatformNativeInterface::setEventFilter(const QByteArray &eventType, EventFilter filter)
+ \since 5.0
+
+ Replaces the event filter function for the native interface with
+ \a filter and returns the pointer to the replaced event filter
+ function. Only the current event filter function is called. If you
+ want to use both filter functions, save the replaced EventFilter
+ in a place where you can call it from.
+
+ The event filter function set here is called for all messages
+ received from the platform if they are given type \eventType.
+ It is \i not called for messages that are not meant for Qt objects.
+
+ The type of event is specific to the platform plugin chosen at run-time.
+
+ The event filter function should return \c true if the message should
+ be filtered, (i.e. stopped). It should return \c false to allow
+ processing the message to continue.
+
+ By default, no event filter function is set. For example, this function
+ returns a null EventFilter the first time it is called.
+
+ \note The filter function here receives native messages,
+ for example, MSG or XEvent structs. It is called by the platform plugin.
+*/
+QPlatformNativeInterface::EventFilter QPlatformNativeInterface::setEventFilter(const QByteArray &eventType, QPlatformNativeInterface::EventFilter filter)
+{
+ Q_UNUSED(eventType);
+ Q_UNUSED(filter);
+ return 0;
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qplatformnativeinterface_qpa.h b/src/gui/kernel/qplatformnativeinterface_qpa.h
index 47e2f82810..579a0bcd9b 100644
--- a/src/gui/kernel/qplatformnativeinterface_qpa.h
+++ b/src/gui/kernel/qplatformnativeinterface_qpa.h
@@ -70,6 +70,9 @@ public:
virtual QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const;
virtual void setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value);
+ typedef bool (*EventFilter)(void *message, long *result);
+ virtual EventFilter setEventFilter(const QByteArray &eventType, EventFilter filter);
+
Q_SIGNALS:
void windowPropertyChanged(QPlatformWindow *window, const QString &propertyName);
};