Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwaylandpointergestures.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5#include "qwaylanddisplay_p.h"
7
9
10namespace QtWaylandClient {
11
13 : zwp_pointer_gestures_v1(display->wl_registry(), id, qMin(version, uint(1)))
14{
15}
16
18{
19 if (version() >= ZWP_POINTER_GESTURES_V1_RELEASE_SINCE_VERSION)
20 release();
21 else
22 zwp_pointer_gestures_v1_destroy(object());
23}
24
30
36
41
46
48 struct ::wl_surface *surface,
49 uint32_t fingers)
50{
51#ifndef QT_NO_GESTURES
53 if (!mFocus) {
54 return;
55 }
56 mParent->mSerial = serial;
57 mFingers = fingers;
58
59 const auto* pointer = mParent->pointer();
60
61 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_swipe_v1_begin @ "
62 << pointer->mSurfacePos << "fingers" << fingers;
63
65 pointer->mSurfacePos, pointer->mGlobalPos, mFingers,
66 QPointF());
67
68 mFocus->handleSwipeGesture(mParent, e);
69#endif
70}
71
73 wl_fixed_t dx, wl_fixed_t dy)
74{
75#ifndef QT_NO_GESTURES
76 if (!mFocus) {
77 return;
78 }
79 const auto* pointer = mParent->pointer();
80
81 const QPointF delta = QPointF(wl_fixed_to_double(dx), wl_fixed_to_double(dy));
82 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_swipe_v1_update @ "
83 << pointer->mSurfacePos << "delta" << delta;
84
86 pointer->mSurfacePos, pointer->mGlobalPos, mFingers, delta);
87
88 mFocus->handleSwipeGesture(mParent, e);
89#endif
90}
91
93 int32_t cancelled)
94{
95#ifndef QT_NO_GESTURES
96 if (!mFocus) {
97 return;
98 }
99 mParent->mSerial = serial;
100 const auto* pointer = mParent->pointer();
101
102 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_swipe_v1_end @ "
103 << pointer->mSurfacePos << (cancelled ? "CANCELED" : "");
104
106
107 auto e = QWaylandPointerGestureSwipeEvent(mFocus, gestureType, time,
108 pointer->mSurfacePos, pointer->mGlobalPos, mFingers,
109 QPointF());
110
111 mFocus->handleSwipeGesture(mParent, e);
112
113 mFocus.clear();
114 mFingers = 0;
115#endif
116}
117
122
127
129 struct ::wl_surface *surface,
130 uint32_t fingers)
131{
132#ifndef QT_NO_GESTURES
134 if (!mFocus) {
135 return;
136 }
137 mParent->mSerial = serial;
138 mFingers = fingers;
139 mLastScale = 1;
140 const auto* pointer = mParent->pointer();
141
142 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_pinch_v1_begin @ "
143 << pointer->mSurfacePos << "fingers" << fingers;
144
146 pointer->mSurfacePos, pointer->mGlobalPos, mFingers,
147 QPointF(), 0, 0);
148
149 mFocus->handlePinchGesture(mParent, e);
150#endif
151}
152
154 wl_fixed_t dx, wl_fixed_t dy,
155 wl_fixed_t scale,
156 wl_fixed_t rotation)
157{
158#ifndef QT_NO_GESTURES
159 if (!mFocus) {
160 return;
161 }
162 const auto* pointer = mParent->pointer();
163
164 const qreal rscale = wl_fixed_to_double(scale);
165 const qreal rot = wl_fixed_to_double(rotation);
166 const QPointF delta = QPointF(wl_fixed_to_double(dx), wl_fixed_to_double(dy));
167 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_pinch_v1_update @ "
168 << pointer->mSurfacePos << "delta" << delta
169 << "scale" << mLastScale << "->" << rscale
170 << "delta" << rscale - mLastScale << "rot" << rot;
171
173 pointer->mSurfacePos, pointer->mGlobalPos, mFingers,
174 delta, rscale - mLastScale, rot);
175
176 mFocus->handlePinchGesture(mParent, e);
177
178 mLastScale = rscale;
179#endif
180}
181
183 int32_t cancelled)
184{
185#ifndef QT_NO_GESTURES
186 if (!mFocus) {
187 return;
188 }
189 mParent->mSerial = serial;
190 const auto* pointer = mParent->pointer();
191
192 qCDebug(lcQpaWaylandInput) << "zwp_pointer_gesture_swipe_v1_end @ "
193 << pointer->mSurfacePos << (cancelled ? "CANCELED" : "");
194
196
197 auto e = QWaylandPointerGesturePinchEvent(mFocus, gestureType, time,
198 pointer->mSurfacePos, pointer->mGlobalPos, mFingers,
199 QPointF(), 0, 0);
200
201 mFocus->handlePinchGesture(mParent, e);
202
203 mFocus.clear();
204 mFingers = 0;
205 mLastScale = 1;
206#endif
207}
208
209} // namespace QtWaylandClient
210
bool cancelled
Definition btgcdtimer.mm:27
IOBluetoothDevice * device
\inmodule QtCore\reentrant
Definition qpoint.h:217
void zwp_pointer_gesture_pinch_v1_update(uint32_t time, wl_fixed_t dx, wl_fixed_t dy, wl_fixed_t scale, wl_fixed_t rotation) override
void zwp_pointer_gesture_pinch_v1_begin(uint32_t serial, uint32_t time, struct ::wl_surface *surface, uint32_t fingers) override
void zwp_pointer_gesture_pinch_v1_end(uint32_t serial, uint32_t time, int32_t cancelled) override
void zwp_pointer_gesture_swipe_v1_begin(uint32_t serial, uint32_t time, struct ::wl_surface *surface, uint32_t fingers) override
void zwp_pointer_gesture_swipe_v1_end(uint32_t serial, uint32_t time, int32_t cancelled) override
void zwp_pointer_gesture_swipe_v1_update(uint32_t time, wl_fixed_t dx, wl_fixed_t dy) override
QWaylandPointerGesturePinch * createPointerGesturePinch(QWaylandInputDevice *device)
QWaylandPointerGestureSwipe * createPointerGestureSwipe(QWaylandInputDevice *device)
QWaylandPointerGestures(QWaylandDisplay *display, uint id, uint version)
static QWaylandWindow * fromWlSurface(::wl_surface *surface)
struct wl_display * display
Definition linuxdmabuf.h:41
Combined button and popup list for selecting options.
@ GestureCanceled
@ GestureStarted
@ GestureUpdated
@ GestureFinished
#define qCDebug(category,...)
constexpr const T & qMin(const T &a, const T &b)
Definition qminmax.h:40
GLenum GLuint id
[7]
GLsizei const void * pointer
Definition qopenglext.h:384
GLfloat GLfloat p
[1]
GLenum GLenum GLenum GLenum GLenum scale
unsigned int uint
Definition qtypes.h:34
double qreal
Definition qtypes.h:187
sem release()