Commit 3642ecf3 authored by Sebastian Krzyszkowiak's avatar Sebastian Krzyszkowiak Committed by Bhushan Shah
Browse files

Send wl_pointer.frame when emulating pointer events out of touch ones

When touching a surface that doesn't register to wl_touch events, KWin
didn't send frame events (which it does for regular pointer and touch
events), causing severe updating issues with some clients.

Test Plan:
Launch a client that doesn't attach to wl_touch (for instance,
rootston) with WAYLAND_DEBUG=client and watch the logs while touching
its window.


(cherry picked from commit 8dae655b)
parent 7a8ac182
...@@ -1493,6 +1493,7 @@ void SeatInterface::touchMove(qint32 id, const QPointF &globalPosition) ...@@ -1493,6 +1493,7 @@ void SeatInterface::touchMove(qint32 id, const QPointF &globalPosition)
[this, pos] (PointerInterface *p) { [this, pos] (PointerInterface *p) {
wl_pointer_send_motion(p->resource(), timestamp(), wl_pointer_send_motion(p->resource(), timestamp(),
wl_fixed_from_double(pos.x()), wl_fixed_from_double(pos.y())); wl_fixed_from_double(pos.x()), wl_fixed_from_double(pos.y()));
p->d_func()->sendFrame();
} }
); );
} }
...@@ -1520,6 +1521,7 @@ void SeatInterface::touchUp(qint32 id) ...@@ -1520,6 +1521,7 @@ void SeatInterface::touchUp(qint32 id)
forEachInterface<PointerInterface>(focusedTouchSurface(), d->pointers, forEachInterface<PointerInterface>(focusedTouchSurface(), d->pointers,
[this, serial] (PointerInterface *p) { [this, serial] (PointerInterface *p) {
wl_pointer_send_button(p->resource(), serial, timestamp(), BTN_LEFT, WL_POINTER_BUTTON_STATE_RELEASED); wl_pointer_send_button(p->resource(), serial, timestamp(), BTN_LEFT, WL_POINTER_BUTTON_STATE_RELEASED);
p->d_func()->sendFrame();
} }
); );
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment