From 88af55b8576e3074638619b1a3ef9f29fac8c9a0 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 15 Aug 2023 17:13:32 +0200 Subject: [PATCH] clutter: Add boolean return value to clutter_stage_get_device_coords() The device/sequence may not currently have a set of coordinates to return. We correctly leave the out values uninitialized, but don't tell the upper layers in any way. Part-of: --- clutter/clutter/clutter-mutter.h | 8 ++++---- clutter/clutter/clutter-stage.c | 13 +++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/clutter/clutter/clutter-mutter.h b/clutter/clutter/clutter-mutter.h index 458f9bc32..b1c83e2ea 100644 --- a/clutter/clutter/clutter-mutter.h +++ b/clutter/clutter/clutter-mutter.h @@ -118,10 +118,10 @@ void clutter_stage_update_device (ClutterStage *stage, gboolean emit_crossing); CLUTTER_EXPORT -void clutter_stage_get_device_coords (ClutterStage *stage, - ClutterInputDevice *device, - ClutterEventSequence *sequence, - graphene_point_t *coords); +gboolean clutter_stage_get_device_coords (ClutterStage *stage, + ClutterInputDevice *device, + ClutterEventSequence *sequence, + graphene_point_t *coords); CLUTTER_EXPORT void clutter_stage_repick_device (ClutterStage *stage, ClutterInputDevice *device); diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 03999f3f9..a2044fafd 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -3134,7 +3134,7 @@ clutter_stage_get_device_actor (ClutterStage *stage, /** * clutter_stage_get_device_coords: (skip): */ -void +gboolean clutter_stage_get_device_coords (ClutterStage *stage, ClutterInputDevice *device, ClutterEventSequence *sequence, @@ -3143,16 +3143,21 @@ clutter_stage_get_device_coords (ClutterStage *stage, ClutterStagePrivate *priv = stage->priv; PointerDeviceEntry *entry = NULL; - g_return_if_fail (CLUTTER_IS_STAGE (stage)); - g_return_if_fail (device != NULL); + g_return_val_if_fail (CLUTTER_IS_STAGE (stage), FALSE); + g_return_val_if_fail (device != NULL, FALSE); if (sequence != NULL) entry = g_hash_table_lookup (priv->touch_sequences, sequence); else entry = g_hash_table_lookup (priv->pointer_devices, device); - if (entry && coords) + if (!entry) + return FALSE; + + if (coords) *coords = entry->coords; + + return TRUE; } static void