Better external object support

Now when invalidating a geometry an event is sent. A new logic
has been done to enqueue an element whenever a geometry has changed.
Make the object example work correcly with the new weighted layout