wayland: Use ClutterEvent getter methods

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3153>
This commit is contained in:
Carlos Garnacho
2023-08-04 12:33:33 +02:00
parent 71fb87a9f2
commit 64490c3489
16 changed files with 170 additions and 100 deletions

View File

@ -549,14 +549,20 @@ static void
meta_wayland_tablet_tool_account_button (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
if (event->type == CLUTTER_BUTTON_PRESS)
ClutterEventType event_type;
int button;
event_type = clutter_event_type (event);
button = clutter_event_get_button (event);
if (event_type == CLUTTER_BUTTON_PRESS)
{
tool->pressed_buttons |= 1 << (event->button.button - 1);
tool->pressed_buttons |= 1 << (button - 1);
tool->button_count++;
}
else if (event->type == CLUTTER_BUTTON_RELEASE)
else if (event_type == CLUTTER_BUTTON_RELEASE)
{
tool->pressed_buttons &= ~(1 << (event->button.button - 1));
tool->pressed_buttons &= ~(1 << (button - 1));
tool->button_count--;
}
}
@ -670,7 +676,7 @@ broadcast_button (MetaWaylandTabletTool *tool,
wl_resource_for_each (resource, &tool->focus_resource_list)
{
zwp_tablet_tool_v2_send_button (resource, tool->button_serial, button,
event->type == CLUTTER_BUTTON_PRESS ?
clutter_event_type (event) == CLUTTER_BUTTON_PRESS ?
ZWP_TABLET_TOOL_V2_BUTTON_STATE_PRESSED :
ZWP_TABLET_TOOL_V2_BUTTON_STATE_RELEASED);
}
@ -683,9 +689,10 @@ broadcast_axis (MetaWaylandTabletTool *tool,
{
struct wl_resource *resource;
uint32_t value;
double val;
double *axes, val;
val = event->motion.axes[axis];
axes = clutter_event_get_axes (event, NULL);
val = axes[axis];
value = val * TABLET_AXIS_MAX;
wl_resource_for_each (resource, &tool->focus_resource_list)
@ -712,10 +719,11 @@ broadcast_tilt (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
struct wl_resource *resource;
gdouble xtilt, ytilt;
double *axes, xtilt, ytilt;
xtilt = event->motion.axes[CLUTTER_INPUT_AXIS_XTILT];
ytilt = event->motion.axes[CLUTTER_INPUT_AXIS_YTILT];
axes = clutter_event_get_axes (event, NULL);
xtilt = axes[CLUTTER_INPUT_AXIS_XTILT];
ytilt = axes[CLUTTER_INPUT_AXIS_YTILT];
wl_resource_for_each (resource, &tool->focus_resource_list)
{
@ -730,9 +738,10 @@ broadcast_rotation (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
struct wl_resource *resource;
gdouble rotation;
double *axes, rotation;
rotation = event->motion.axes[CLUTTER_INPUT_AXIS_ROTATION];
axes = clutter_event_get_axes (event, NULL);
rotation = axes[CLUTTER_INPUT_AXIS_ROTATION];
wl_resource_for_each (resource, &tool->focus_resource_list)
{
@ -746,10 +755,11 @@ broadcast_wheel (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
struct wl_resource *resource;
gdouble angle;
double *axes, angle;
gint32 clicks = 0;
angle = event->motion.axes[CLUTTER_INPUT_AXIS_WHEEL];
axes = clutter_event_get_axes (event, NULL);
angle = axes[CLUTTER_INPUT_AXIS_WHEEL];
/* FIXME: Perform proper angle-to-clicks accumulation elsewhere */
if (angle > 0.01)
@ -805,15 +815,21 @@ static void
handle_button_event (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
ClutterEventType event_type;
int button;
if (!tool->focus_surface)
return;
if (event->type == CLUTTER_BUTTON_PRESS && tool->button_count == 1)
event_type = clutter_event_type (event);
button = clutter_event_get_button (event);
if (event_type == CLUTTER_BUTTON_PRESS && tool->button_count == 1)
clutter_event_get_coords (event, &tool->grab_x, &tool->grab_y);
if (event->type == CLUTTER_BUTTON_PRESS && event->button.button == 1)
if (event_type == CLUTTER_BUTTON_PRESS && button == 1)
broadcast_down (tool, event);
else if (event->type == CLUTTER_BUTTON_RELEASE && event->button.button == 1)
else if (event_type == CLUTTER_BUTTON_RELEASE && button == 1)
broadcast_up (tool, event);
else
broadcast_button (tool, event);
@ -825,7 +841,7 @@ void
meta_wayland_tablet_tool_update (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
switch (event->type)
switch (clutter_event_type (event))
{
case CLUTTER_BUTTON_PRESS:
case CLUTTER_BUTTON_RELEASE:
@ -864,7 +880,7 @@ gboolean
meta_wayland_tablet_tool_handle_event (MetaWaylandTabletTool *tool,
const ClutterEvent *event)
{
switch (event->type)
switch (clutter_event_type (event))
{
case CLUTTER_PROXIMITY_IN:
/* We don't have much info here to make anything useful out of it,