12#if QT_CONFIG(wayland_datadevice)
13#include "qwaylanddatadevice_p.h"
14#include "qwaylanddatadevicemanager_p.h"
16#if QT_CONFIG(clipboard)
17#include "qwaylanddatacontrolv1_p.h"
19#if QT_CONFIG(wayland_client_primary_selection)
20#include "qwaylandprimaryselectionv1_p.h"
22#if QT_CONFIG(tabletevent)
23#include "qwaylandtabletv2_p.h"
38#include <QtGui/private/qpixmap_raster_p.h>
39#include <QtGui/private/qguiapplication_p.h>
40#include <qpa/qplatformwindow.h>
41#include <qpa/qplatforminputcontext.h>
42#include <qpa/qplatformtheme.h>
50#include <wayland-cursor.h>
53#include <QtGui/QGuiApplication>
54#include <QtGui/QPointingDevice>
69 delayTimer.setSingleShot(
true);
74 using namespace std::chrono_literals;
76 if (!QCoreApplication::testAttribute(Qt::AA_CompressHighFrequencyEvents))
79 const auto elapsed = timeElapsed.durationElapsed();
81 if (elapsed < 100us || delayTimer.isActive())
115#if QT_CONFIG(xkbcommon)
354#if QT_CONFIG(clipboard)
360#if QT_CONFIG(wayland_datadevice)
366#if QT_CONFIG(wayland_client_primary_selection)
387#if QT_CONFIG(tabletevent)
508#if QT_CONFIG(wayland_datadevice)
520#if QT_CONFIG(clipboard)
532#if QT_CONFIG(wayland_client_primary_selection)
549#if QT_CONFIG(tabletevent)
604#if QT_CONFIG(xkbcommon)
625#if QT_CONFIG(xkbcommon)
665#if QT_CONFIG(tabletevent)
675 EnterEvent(QWaylandWindow *surface,
const QPointF &local,
const QPointF &global)
694 <<
"leave event first, this is not allowed by the wayland protocol"
695 <<
"attempting to work around it by invalidating the current focus";
724 LeaveEvent(QWaylandWindow *surface,
const QPointF &localPos,
const QPointF &globalPos)
753 MotionEvent(QWaylandWindow *surface, ulong timestamp,
const QPointF &localPos,
754 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
791 PressEvent(QWaylandWindow *surface, ulong timestamp,
const QPointF &localPos,
792 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
793 Qt::KeyboardModifiers modifiers)
803 ReleaseEvent(QWaylandWindow *surface, ulong timestamp,
const QPointF &localPos,
804 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
805 Qt::KeyboardModifiers modifiers)
901 WheelEvent(QWaylandWindow *surface, Qt::ScrollPhase phase, ulong timestamp,
const QPointF &local,
902 const QPointF &global,
const QPoint &pixelDelta,
const QPoint &angleDelta,
903 Qt::MouseEventSource source, Qt::KeyboardModifiers modifiers,
bool inverted)
984 <<
"This is most likely a compositor bug";
1241#if QT_CONFIG(xkbcommon)
1316 <<
"wl_surface argument does not match the current focus"
1317 <<
"This is most likely a compositor bug";
1377#if QT_CONFIG(xkbcommon)
1446#if QT_CONFIG(xkbcommon)
1629#include "moc_qwaylandinputdevice_p.cpp"
EnterEvent(QWaylandWindow *surface, const QPointF &local, const QPointF &global)
LeaveEvent(QWaylandWindow *surface, const QPointF &localPos, const QPointF &globalPos)
MotionEvent(QWaylandWindow *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
PressEvent(QWaylandWindow *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
ReleaseEvent(QWaylandWindow *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
WheelEvent(QWaylandWindow *surface, Qt::ScrollPhase phase, ulong timestamp, const QPointF &local, const QPointF &global, const QPoint &pixelDelta, const QPoint &angleDelta, Qt::MouseEventSource source, Qt::KeyboardModifiers modifiers, bool inverted)
Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland")
static const int MaxTouchPoints
Q_DECLARE_LOGGING_CATEGORY(lcQpaWaylandInput)
QWaylandEventCompressionPrivate()