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)
510#if QT_CONFIG(wayland_datadevice)
522#if QT_CONFIG(clipboard)
534#if QT_CONFIG(wayland_client_primary_selection)
551#if QT_CONFIG(tabletevent)
611#if QT_CONFIG(xkbcommon)
632#if QT_CONFIG(xkbcommon)
672#if QT_CONFIG(tabletevent)
701 <<
"leave event first, this is not allowed by the wayland protocol"
702 <<
"attempting to work around it by invalidating the current focus";
764 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
806 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
807 Qt::KeyboardModifiers modifiers)
818 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
819 Qt::KeyboardModifiers modifiers)
931 const QPointF &global,
const QPoint &pixelDelta,
const QPoint &angleDelta,
932 Qt::MouseEventSource source, Qt::KeyboardModifiers modifiers,
bool inverted)
1013 <<
"This is most likely a compositor bug";
1274#if QT_CONFIG(xkbcommon)
1349 <<
"wl_surface argument does not match the current focus"
1350 <<
"This is most likely a compositor bug";
1418#if QT_CONFIG(xkbcommon)
1487#if QT_CONFIG(xkbcommon)
1681#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()