diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c index 9ac6d53bf..706fb430a 100644 --- a/clutter/clutter/clutter-main.c +++ b/clutter/clutter/clutter-main.c @@ -1912,9 +1912,6 @@ _clutter_process_event_details (ClutterActor *stage, case CLUTTER_PROXIMITY_IN: case CLUTTER_PROXIMITY_OUT: - clutter_input_device_update_from_tool (clutter_event_get_source_device (event), - clutter_event_get_device_tool (event)); - if (_clutter_event_process_filters (event)) break; diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c index 32773a478..7329568f9 100644 --- a/src/backends/native/meta-seat-impl.c +++ b/src/backends/native/meta-seat-impl.c @@ -1656,6 +1656,9 @@ input_device_update_tool (ClutterInputDevice *input_device, if (evdev_device->last_tool != tool) { + if (tool) + clutter_input_device_update_from_tool (input_device, tool); + evdev_device->last_tool = tool; g_signal_emit_by_name (seat_impl->seat_native, "tool-changed", input_device, tool); diff --git a/src/backends/x11/meta-seat-x11.c b/src/backends/x11/meta-seat-x11.c index f437ef16d..4437a247a 100644 --- a/src/backends/x11/meta-seat-x11.c +++ b/src/backends/x11/meta-seat-x11.c @@ -960,6 +960,9 @@ translate_property_event (MetaSeatX11 *seat_x11, meta_input_device_x11_update_tool (device, tool); g_signal_emit_by_name (seat_x11, "tool-changed", device, tool); + + if (tool) + clutter_input_device_update_from_tool (device, tool); } }