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>
This commit is contained in:
parent
3b9330cd40
commit
bb18767af1
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -215,4 +215,49 @@ QT_DEFINE_PRIVATE_NATIVE_INTERFACE(QEvdevKeyMapper);
|
||||
|
||||
#endif // QT_CONFIG(evdev)
|
||||
|
||||
#if defined(Q_OS_UNIX)
|
||||
|
||||
/*!
|
||||
\class QNativeInterface::QWaylandApplication
|
||||
\since 6.5
|
||||
\brief Native interface to a Wayland application.
|
||||
|
||||
Accessed through QGuiApplication::nativeInterface().
|
||||
\inmodule QtGui
|
||||
\ingroup native-interfaces
|
||||
\ingroup native-interfaces-qguiapplication
|
||||
*/
|
||||
/*!
|
||||
\fn wl_display *QNativeInterface::QWaylandApplication::display() const
|
||||
\return the wl_display that the application is using.
|
||||
*/
|
||||
/*!
|
||||
\fn wl_compositor *QNativeInterface::QWaylandApplication::compositor() const
|
||||
\return the wl_compositor that the application is using.
|
||||
*/
|
||||
/*!
|
||||
\fn wl_keyboard *QNativeInterface::QWaylandApplication::keyboard() const
|
||||
\return the wl_keyboard belonging to seat() if available.
|
||||
*/
|
||||
/*!
|
||||
\fn wl_pointer *QNativeInterface::QWaylandApplication::pointer() const
|
||||
\return the wl_pointer belonging to seat() if available.
|
||||
*/
|
||||
/*!
|
||||
\fn wl_touch *QNativeInterface::QWaylandApplication::touch() const
|
||||
\return the wl_touch belonging to seat() if available.
|
||||
*/
|
||||
/*!
|
||||
\fn uint *QNativeInterface::QWaylandApplication::lastInputSerial() const
|
||||
\return the serial of the last input event on any seat.
|
||||
*/
|
||||
/*!
|
||||
\fn wl_seat *QNativeInterface::QWaylandApplication::lastInputSeat() const
|
||||
\return the seat on which the last input event happened.
|
||||
*/
|
||||
|
||||
QT_DEFINE_NATIVE_INTERFACE(QWaylandApplication);
|
||||
|
||||
#endif // Q_OS_UNIX
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
Loading…
Reference in New Issue
Block a user