summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor/compositor_api/qwaylandpointer.cpp22
-rw-r--r--src/compositor/compositor_api/qwaylandpointer.h6
2 files changed, 20 insertions, 8 deletions
diff --git a/src/compositor/compositor_api/qwaylandpointer.cpp b/src/compositor/compositor_api/qwaylandpointer.cpp
index 742987c8b..5581a5c10 100644
--- a/src/compositor/compositor_api/qwaylandpointer.cpp
+++ b/src/compositor/compositor_api/qwaylandpointer.cpp
@@ -151,34 +151,45 @@ void QWaylandPointer::setOutput(QWaylandOutput *output)
/*!
* Sends a mouse press event for \a button to the view currently holding mouse focus.
+ *
+ * Returns the serial number of the press event.
*/
-void QWaylandPointer::sendMousePressEvent(Qt::MouseButton button)
+uint QWaylandPointer::sendMousePressEvent(Qt::MouseButton button)
{
Q_D(QWaylandPointer);
uint32_t time = d->compositor()->currentTimeMsecs();
d->buttonCount++;
+ uint serial = 0;
+
if (d->focusResource)
- sendButton(d->focusResource, time, button, WL_POINTER_BUTTON_STATE_PRESSED);
+ serial = sendButton(d->focusResource, time, button, WL_POINTER_BUTTON_STATE_PRESSED);
if (d->buttonCount == 1) {
emit buttonPressedChanged();
}
+
+ return serial;
}
/*!
* Sends a mouse release event for \a button to the view currently holding mouse focus.
+ *
+ * Returns the serial number of the release event.
*/
-void QWaylandPointer::sendMouseReleaseEvent(Qt::MouseButton button)
+uint QWaylandPointer::sendMouseReleaseEvent(Qt::MouseButton button)
{
Q_D(QWaylandPointer);
uint32_t time = d->compositor()->currentTimeMsecs();
d->buttonCount--;
+ uint serial = 0;
if (d->focusResource)
- sendButton(d->focusResource, time, button, WL_POINTER_BUTTON_STATE_RELEASED);
+ serial = sendButton(d->focusResource, time, button, WL_POINTER_BUTTON_STATE_RELEASED);
if (d->buttonCount == 0)
emit buttonPressedChanged();
+
+ return serial;
}
/*!
@@ -308,11 +319,12 @@ struct wl_resource *QWaylandPointer::focusResource() const
/*!
* \internal
*/
-void QWaylandPointer::sendButton(struct wl_resource *resource, uint32_t time, Qt::MouseButton button, uint32_t state)
+uint QWaylandPointer::sendButton(struct wl_resource *resource, uint32_t time, Qt::MouseButton button, uint32_t state)
{
Q_D(QWaylandPointer);
uint32_t serial = d->compositor()->nextSerial();
d->send_button(resource, serial, time, toWaylandButton(button), state);
+ return serial;
}
/*!
diff --git a/src/compositor/compositor_api/qwaylandpointer.h b/src/compositor/compositor_api/qwaylandpointer.h
index 0db1635bb..87bf31c97 100644
--- a/src/compositor/compositor_api/qwaylandpointer.h
+++ b/src/compositor/compositor_api/qwaylandpointer.h
@@ -64,8 +64,8 @@ public:
QWaylandOutput *output() const;
void setOutput(QWaylandOutput *output);
- virtual void sendMousePressEvent(Qt::MouseButton button);
- virtual void sendMouseReleaseEvent(Qt::MouseButton button);
+ virtual uint sendMousePressEvent(Qt::MouseButton button);
+ virtual uint sendMouseReleaseEvent(Qt::MouseButton button);
virtual void sendMouseMoveEvent(QWaylandView *view, const QPointF &localPos, const QPointF &outputSpacePos);
virtual void sendMouseWheelEvent(Qt::Orientation orientation, int delta);
@@ -80,7 +80,7 @@ public:
wl_resource *focusResource() const;
static uint32_t toWaylandButton(Qt::MouseButton button);
- void sendButton(struct wl_resource *resource, uint32_t time, Qt::MouseButton button, uint32_t state);
+ uint sendButton(struct wl_resource *resource, uint32_t time, Qt::MouseButton button, uint32_t state);
Q_SIGNALS:
void outputChanged();
void buttonPressedChanged();