It's just that to me `EndIteration` seems less intuitive. If I want the
focus to not go forward/backward, I'd set focus_next/previous to `None`.

It just seems If I set `focus_next` to `None` and press `tab`; It would be
highly unintuitive to have the focus still go to the next focusable widget.

setting `focus_next` to `EndIteration` to stop focus just sounds off.

What I am proposing is

1.) by default every focusable widget has `focus_next/previous` set to
'find' or `iterate` or whatever seems more intuitive.
2.) If I/user  set `focus_next/previous` to `None` . Just don't walk.

I think `None` has always equated to 'nothing', 'nada', 'zilch' not the
default behavior



On Sun, Mar 2, 2014 at 8:40 PM, matham <notifications@github.com> wrote:

> In kivy/uix/behaviors.py:
>
> > +            next.focus_previous = None
> > +        self._old_focus_next = value
> > +        if value:
> > +            if not isinstance(value, FocusBehavior) and\
> > +                value is not EndIteration:
> > +                raise ValueError('focus_next accepts only objects based'
> > +                                 ' on FocusBehavior')
> > +            value.focus_previous = self
> > +
> > +    focus_next = ObjectProperty(None, allownone=True)
> > +    '''The :class:`FocusBehavior` instance to acquire focus when
> > +    tab is pressed when this instance has focus, if not None.
> > +
> > +    When tab is pressed, focus cycles through all the :class:`FocusBehavior`
> > +    widgets that are linked through :attr:`focus_next` and are focusable. If
> > +    :attr:`focus_next` is None, it instead walks the children lists to find
>
> There is no functional difference between what you described and how it is
> now, other then replacing None by find. In essence, what you call find is
> now called None.
>
> It would only be different if we change it like you suggested, but then
> don't default it to find. But that is basically the same if we simply
> change the default from None to EndIteration. But I don't think that's a
> good idea, because it should just work without the user having to do
> anything else. Also, to me, None makes more sense than find, because None
> to me just means do whatever is default and by default we should be walking
> the tree.
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/kivy/kivy/pull/1909/files#r10195753>
> .
>