Change button child objects on toggled / checked

I am changing the colour of a button when it is toggled/checked as follows (using two different styles, one for LV_STATE_CHECKED):

    lv_obj_t * btn = lv_btn_create(parent);
    lv_obj_add_style(btn, &style_btn, 0);
    lv_obj_add_style(btn, &style_btn_toggled, LV_STATE_CHECKED);
    lv_obj_add_flag(btn, LV_OBJ_FLAG_CHECKABLE);

However I would also like to change the colour of an image which is embedded inside the button object (child of the button):

    lv_obj_t *img = lv_img_create(btn);
    lv_img_set_src(img, img_ptr1);

Normally I change the image colour using:
lv_obj_set_style_img_recolor (img, img_color, 0);

But it doesn’t look like LV_STATE_CHECKED is inherited by the image object from its parent button object.

Is it possible, or do we have to handle the button callback and change the colours manually in there?

This does work for other things embedded in a button object, for example text colour and font follow the style of the parent button object and do change colour/font when you toggle the button.

Many thanks