diff --git a/plugins/qpa/nativeinterface.h b/plugins/qpa/nativeinterface.h --- a/plugins/qpa/nativeinterface.h +++ b/plugins/qpa/nativeinterface.h @@ -35,6 +35,7 @@ explicit NativeInterface(Integration *integration); void *nativeResourceForIntegration(const QByteArray &resource) override; void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) override; + QFunctionPointer platformFunction(const QByteArray &function) const override; private: Integration *m_integration; diff --git a/plugins/qpa/nativeinterface.cpp b/plugins/qpa/nativeinterface.cpp --- a/plugins/qpa/nativeinterface.cpp +++ b/plugins/qpa/nativeinterface.cpp @@ -79,5 +79,26 @@ return nullptr; } +static void roundtrip() +{ + if (!waylandServer()) { + return; + } + auto c = waylandServer()->internalClientConection(); + if (!c) { + return; + } + c->flush(); + waylandServer()->dispatch(); +} + +QFunctionPointer NativeInterface::platformFunction(const QByteArray &function) const +{ + if (qstrcmp(function.toLower(), "roundtrip") == 0) { + return &roundtrip; + } + return nullptr; +} + } }