diff options
author | David Redondo <qt@david-redondo.de> | 2022-10-11 16:16:39 +0200 |
---|---|---|
committer | David Redondo <qt@david-redondo.de> | 2022-10-25 12:52:05 +0200 |
commit | bb18767af181447bcbaf2d6dd51c94880a4eebce (patch) | |
tree | ee194121dea5e19c60eff0d809c097a13c5e683d /src/gui/kernel | |
parent | 3b9330cd405a0b4c75f1a8bcd836e184fdf38e06 (diff) |
Add QNativeInterface::QWaylandApplication
This exposes the same objects that were ere available through
QPlatformNativeInterface except egldisplay for which we may find
a better place.
[ChangeLog][QtWaylandClient][QGuiApplication] Add
QNativeInterface::QWaylandApplication
that allows to access central native wayland objects.
Task-number: QTBUG-94729
Change-Id: I8611522a4c9bddec3afbb5f183ffa68565f61f68
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 3 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication_platform.h | 24 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index b6a505375f..960bc81a57 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -4282,6 +4282,9 @@ void *QGuiApplication::resolveInterface(const char *name, int revision) const #if QT_CONFIG(xcb) QT_NATIVE_INTERFACE_RETURN_IF(QX11Application, platformNativeInterface()); #endif +#if defined(Q_OS_UNIX) + QT_NATIVE_INTERFACE_RETURN_IF(QWaylandApplication, platformNativeInterface()); +#endif return QCoreApplication::resolveInterface(name, revision); } diff --git a/src/gui/kernel/qguiapplication_platform.h b/src/gui/kernel/qguiapplication_platform.h index 24ee166ac0..b6182e42a3 100644 --- a/src/gui/kernel/qguiapplication_platform.h +++ b/src/gui/kernel/qguiapplication_platform.h @@ -23,6 +23,15 @@ typedef struct _XDisplay Display; struct xcb_connection_t; #endif +#if defined(Q_OS_UNIX) +struct wl_display; +struct wl_compositor; +struct wl_seat; +struct wl_keyboard; +struct wl_pointer; +struct wl_touch; +#endif + QT_BEGIN_NAMESPACE namespace QNativeInterface @@ -37,6 +46,21 @@ struct Q_GUI_EXPORT QX11Application }; #endif +#if defined(Q_OS_UNIX) || defined(Q_CLANG_QDOC) +struct Q_GUI_EXPORT QWaylandApplication +{ + QT_DECLARE_NATIVE_INTERFACE(QWaylandApplication, 1, QGuiApplication) + virtual wl_display *display() const = 0; + virtual wl_compositor *compositor() const = 0; + virtual wl_seat *seat() const = 0; + virtual wl_keyboard *keyboard() const = 0; + virtual wl_pointer *pointer() const = 0; + virtual wl_touch *touch() const = 0; + virtual uint lastInputSerial() const = 0; + virtual wl_seat *lastInputSeat() const = 0; +}; +#endif + } // QNativeInterface QT_END_NAMESPACE |