 
 GENERIC: request-focus-on ( child gadget -- )
 
-M: gadget request-focus-on gadget-parent request-focus-on ;
+M: gadget request-focus-on parent>> request-focus-on ;
 
 M: f request-focus-on 2drop ;
 

    swap [ over (add-gadget) ] each relayout ;

: parents ( gadget -- seq )
    [ gadget-parent ] follow ;

: each-parent ( gadget quot -- ? )
    >r parents r> all? ; inline

    {
        { [ 2dup eq? ] [ 2drop t ] }
        { [ dup not ] [ 2drop f ] }
        [ parent>> child? ]
    } cond ;

GENERIC: focusable-child* ( gadget -- child/t )
