clutter: Move relative motion information to ClutterEvent

Instead of using native backend platform data specifically, store
this info in ClutterMotionEvent. This includes time in usec since
it's just used for motion events, in the future it could make sense
to make these general to all events again, but it could make sense
to make ClutterEvent structs private before.

In order to express that a motion event has relative motion info,
the CLUTTER_EVENT_FLAG_RELATIVE_MOTION event flag has been added
for it.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1623>
This commit is contained in:
Carlos Garnacho
2020-12-08 13:18:06 +01:00
committed by Marge Bot
parent 4db5b95aac
commit b88790554b
7 changed files with 78 additions and 139 deletions

View File

@ -66,7 +66,6 @@
#ifdef HAVE_NATIVE_BACKEND
#include "backends/native/meta-backend-native.h"
#include "backends/native/meta-event-native.h"
#endif
#include "relative-pointer-unstable-v1-server-protocol.h"
@ -286,7 +285,6 @@ void
meta_wayland_pointer_send_relative_motion (MetaWaylandPointer *pointer,
const ClutterEvent *event)
{
#ifdef HAVE_NATIVE_BACKEND
struct wl_resource *resource;
double dx, dy;
double dx_unaccel, dy_unaccel;
@ -295,18 +293,16 @@ meta_wayland_pointer_send_relative_motion (MetaWaylandPointer *pointer,
uint32_t time_us_lo;
wl_fixed_t dxf, dyf;
wl_fixed_t dx_unaccelf, dy_unaccelf;
MetaBackend *backend = meta_get_backend ();
if (!pointer->focus_client)
return;
if (!META_IS_BACKEND_NATIVE (backend) ||
!meta_event_native_get_relative_motion (event,
&dx, &dy,
&dx_unaccel, &dy_unaccel))
if (!clutter_event_get_relative_motion (event,
&dx, &dy,
&dx_unaccel, &dy_unaccel))
return;
time_us = meta_event_native_get_time_usec (event);
time_us = clutter_event_get_time_us (event);
if (time_us == 0)
time_us = clutter_event_get_time (event) * 1000ULL;
time_us_hi = (uint32_t) (time_us >> 32);
@ -327,7 +323,6 @@ meta_wayland_pointer_send_relative_motion (MetaWaylandPointer *pointer,
dx_unaccelf,
dy_unaccelf);
}
#endif
}
void