Bad practice to set two animations (using a dummy object) to control an object's x and y coordinates?

Hardware: nRF52840 DK, Sharp LS027 monochrome 400x240 display
Software/Tools: LVGL 8.2, Zephyr, nRF Connect SDK

I want to simulate an on-screen cursor controlled by an encoder (basically replacing the focused object outline, but jumping between objects the way a cursor might). Since the objects aren’t evenly spaced across the screen, I don’t think I’d be able to infer where the “non-target” coordinate belongs upon each animation callback. I successfully solved this by creating two of the same cursor object directly overlapping, setting two animation callbacks (one for x, one for y), and updating the x or y coordinate for both objects in each callback.

static void anim_cb_x(void* var, int32_t v) {
	lv_obj_set_x(cursor_obj1, v);
	lv_obj_set_x(cursor_obj2, v);

static void anim_cb_y(void* var, int32_t v) {
	lv_obj_set_y(cursor_obj1, v);
	lv_obj_set_y(cursor_obj2, v);

It’s a hacky solution, though. Are there any alternative options? Is this a valid approach for my use-case or would it be too strenuous on the CPU?

I misunderstood this passage:

You can apply multiple different animations on the same variable at the same time. For example, animate the x and y coordinates with lv_obj_set_x and lv_obj_set_y. However, only one animation can exist with a given variable and function pair and lv_anim_start() will remove any existing animations for such a pair.

Based on the red circle bounce sample, I can see that it’s possible to assign separate animations for x and y for a given object.