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