diff --git a/clutter/clutter/clutter-input-device.c b/clutter/clutter/clutter-input-device.c index 52613317f..7a17f227e 100644 --- a/clutter/clutter/clutter-input-device.c +++ b/clutter/clutter/clutter-input-device.c @@ -579,9 +579,17 @@ _clutter_input_device_set_state (ClutterInputDevice *device, ClutterModifierType clutter_input_device_get_modifier_state (ClutterInputDevice *device) { + uint32_t modifiers; + ClutterSeat *seat; + g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), 0); - return device->current_state; + seat = clutter_input_device_get_seat (device); + + if (!clutter_seat_query_state (seat, device, NULL, NULL, &modifiers)) + return 0; + + return modifiers; } static void @@ -859,27 +867,14 @@ clutter_input_device_get_coords (ClutterInputDevice *device, ClutterEventSequence *sequence, graphene_point_t *point) { + ClutterSeat *seat; + g_return_val_if_fail (CLUTTER_IS_INPUT_DEVICE (device), FALSE); g_return_val_if_fail (point != NULL, FALSE); - if (sequence == NULL) - { - point->x = device->current_x; - point->y = device->current_y; - } - else - { - ClutterTouchInfo *info = - g_hash_table_lookup (device->touch_sequences_info, sequence); + seat = clutter_input_device_get_seat (device); - if (info == NULL) - return FALSE; - - point->x = info->current_x; - point->y = info->current_y; - } - - return TRUE; + return clutter_seat_query_state (seat, device, sequence, point, NULL); } /*