-#ifndef __WXGTK__
- // FIXME seems to enter in an infinite loop - how is this possible?
- // we arrived at the last/first of our children - but may be this
- // panel is inside another panel, so make focus go to the next/prev
- // control in the parent (if we have one)
- if (GetParent() != NULL)
+ // check if our (may be grand) parent is another panel: if this is
+ // the case, they will know what to do with this navigation key and
+ // so give them the chance to process it instead of looping inside
+ // this panel (normally, the focus will go to the next/previous
+ // item after this panel in the parent panel)
+ wxWindow *focussed_child_of_p = this;
+ for ( wxWindow *p = GetParent(); p; p = p->GetParent() )