Skip to content
Snippets Groups Projects
Commit 9ad9c135 authored by Peter Hutterer's avatar Peter Hutterer
Browse files

dix: don't set non-exisiting flags on touch events


Unlike pointer/keyboard events, the flags field for ET_Touch* is a set of
server-internal defines that we need to convert to XI protocol defines.
Currently only two of those defines actually translate to the protocol, so
make sure we don't send internal garbage down the wire.

No effect to current clients since they shouldn't look at undefined bits
anyway.

Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit b86b3d10)
parent f5796f98
No related branches found
Tags 1.19.3
No related merge requests found
......@@ -684,17 +684,18 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi)
xde->root_x = double_to_fp1616(ev->root_x + ev->root_x_frac);
xde->root_y = double_to_fp1616(ev->root_y + ev->root_y_frac);
if (ev->type == ET_TouchUpdate)
xde->flags |= (ev->flags & TOUCH_PENDING_END) ? XITouchPendingEnd : 0;
else
xde->flags = ev->flags;
if (IsTouchEvent((InternalEvent *)ev)) {
if (ev->type == ET_TouchUpdate)
xde->flags |= (ev->flags & TOUCH_PENDING_END) ? XITouchPendingEnd : 0;
if (IsTouchEvent((InternalEvent *) ev) &&
ev->flags & TOUCH_POINTER_EMULATED)
xde->flags |= XITouchEmulatingPointer;
if (ev->flags & TOUCH_POINTER_EMULATED)
xde->flags |= XITouchEmulatingPointer;
} else {
xde->flags = ev->flags;
if (ev->key_repeat)
xde->flags |= XIKeyRepeat;
if (ev->key_repeat)
xde->flags |= XIKeyRepeat;
}
xde->mods.base_mods = ev->mods.base;
xde->mods.latched_mods = ev->mods.latched;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment