The focus signal

The focus signal is used to let the focus switch between elements in a way as easy as possible. FIXME: be more verbose here

The Beginning

At the beginning, there is no focus. So, once the focus enters the view, it emits the 'focus' signal on the root, FIXME: continue here

The Sequel

If there is a focus, we can easily find out which element the focus has, the we can move up the canvas tree and find the next item to be focused.

The Focus Chain

Emit CcItem::focus-next - which actually gets the focus chain, finds out which child currently has he focus and then steps through the list to find the next focus-able child.

If there is no focus chain, the canvas uses the list of child elements from top to bottom.

The Final

Once there's no item which can take the focus in a cycle, we just return FALSE, so the parent's signal handler for the focus event can take the focus off us and move it on to the next element.