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>
45#include <QtCore/qbytearrayview.h>
46#include <QtCore/qscopeguard.h>
53#include <wayland-cursor.h>
56#include <QtGui/QGuiApplication>
57#include <QtGui/QPointingDevice>
72 delayTimer.setSingleShot(
true);
77 using namespace std::chrono_literals;
79 if (!QCoreApplication::testAttribute(Qt::AA_CompressHighFrequencyEvents))
82 const auto elapsed = timeElapsed.durationElapsed();
84 if (elapsed < 100us || delayTimer.isActive())
118#if QT_CONFIG(xkbcommon)
357#if QT_CONFIG(clipboard)
363#if QT_CONFIG(wayland_datadevice)
369#if QT_CONFIG(wayland_client_primary_selection)
390#if QT_CONFIG(tabletevent)
509#if QT_CONFIG(wayland_datadevice)
521#if QT_CONFIG(clipboard)
533#if QT_CONFIG(wayland_client_primary_selection)
550#if QT_CONFIG(tabletevent)
610#if QT_CONFIG(xkbcommon)
631#if QT_CONFIG(xkbcommon)
671#if QT_CONFIG(tabletevent)
700 <<
"leave event first, this is not allowed by the wayland protocol"
701 <<
"attempting to work around it by invalidating the current focus";
763 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
805 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
806 Qt::KeyboardModifiers modifiers)
817 const QPointF &globalPos, Qt::MouseButtons buttons, Qt::MouseButton button,
818 Qt::KeyboardModifiers modifiers)
930 const QPointF &global,
const QPoint &pixelDelta,
const QPoint &angleDelta,
931 Qt::MouseEventSource source, Qt::KeyboardModifiers modifiers,
bool inverted)
1012 <<
"This is most likely a compositor bug";
1254#if QT_CONFIG(xkbcommon)
1280 <<
", keymap string:\n"
1336 <<
"wl_surface argument does not match the current focus"
1337 <<
"This is most likely a compositor bug";
1405#if QT_CONFIG(xkbcommon)
1474#if QT_CONFIG(xkbcommon)
1668#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()