13#if QT_CONFIG(wayland_datadevice)
14#include "qwaylanddatadevice_p.h"
15#include "qwaylanddatadevicemanager_p.h"
17#if QT_CONFIG(clipboard)
18#include "qwaylanddatacontrolv1_p.h"
20#if QT_CONFIG(wayland_client_primary_selection)
21#include "qwaylandprimaryselectionv1_p.h"
23#if QT_CONFIG(tabletevent)
24#include "qwaylandtabletv2_p.h"
39#include <QtGui/private/qpixmap_raster_p.h>
40#include <QtGui/private/qguiapplication_p.h>
41#include <qpa/qplatformwindow.h>
42#include <qpa/qplatforminputcontext.h>
43#include <qpa/qplatformtheme.h>
51#include <wayland-cursor.h>
54#include <QtGui/QGuiApplication>
55#include <QtGui/QPointingDevice>
70 delayTimer.setSingleShot(
true);
75 using namespace std::chrono_literals;
77 if (!QCoreApplication::testAttribute(Qt::AA_CompressHighFrequencyEvents))
80 const auto elapsed = timeElapsed.durationElapsed();
82 if (elapsed < 100us || delayTimer.isActive())
116#if QT_CONFIG(xkbcommon)
355#if QT_CONFIG(clipboard)
361#if QT_CONFIG(wayland_datadevice)
367#if QT_CONFIG(wayland_client_primary_selection)
388#if QT_CONFIG(tabletevent)
512#if QT_CONFIG(wayland_datadevice)
524#if QT_CONFIG(clipboard)
536#if QT_CONFIG(wayland_client_primary_selection)
553#if QT_CONFIG(tabletevent)
613#if QT_CONFIG(xkbcommon)
634#if QT_CONFIG(xkbcommon)
674#if QT_CONFIG(tabletevent)
703 <<
"leave event first, this is not allowed by the wayland protocol"
704 <<
"attempting to work around it by invalidating the current focus";
766 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
808 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
809 Qt::KeyboardModifiers modifiers)
820 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
821 Qt::KeyboardModifiers modifiers)
922 const QPointF &global,
const QPoint &pixelDelta,
const QPoint &angleDelta,
923 Qt::MouseEventSource source, Qt::KeyboardModifiers modifiers,
bool inverted)
1004 <<
"This is most likely a compositor bug";
1265#if QT_CONFIG(xkbcommon)
1340 <<
"wl_surface argument does not match the current focus"
1341 <<
"This is most likely a compositor bug";
1409#if QT_CONFIG(xkbcommon)
1478#if QT_CONFIG(xkbcommon)
1672#include "moc_qwaylandinputdevice_p.cpp"
EnterEvent(QWaylandSurface *surface, const QPointF &local, const QPointF &global)
LeaveEvent(QWaylandSurface *surface, const QPointF &localPos, const QPointF &globalPos)
MotionEvent(QWaylandSurface *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
PressEvent(QWaylandSurface *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
ReleaseEvent(QWaylandSurface *surface, ulong timestamp, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button, Qt::KeyboardModifiers modifiers)
WheelEvent(QWaylandSurface *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()