Correctly handling widget creation and removal

I don’t have that function to get canvas children as it seems:

This is why I am iterating all instances of the class. I would prefer to loop only the actual childs of the canvas, and therefore skip the invisble ones, but I could not find any function which allows me to do that.

In regards of hiding instead of removing:
This sounds like a good improvement for the marker which points to the horse location, since there will be only 1 or none. However, the mod will also allow to set arbitrary markers by clicking on the map, and thus there can be many. Implementing some kind of “unused widgets pool” really sounds cumbersome for something which should be handled in a different way, if you ask me?