     gadget start>> [
         gadget end>> now or swap time- duration>seconds
     ] [ 0 ] if* ;
+
+M: grid-gadget handle-gesture
+    over { [ key-down? ] [ sym>> length 1 = ] } 1&& [
+        2dup [ sym>> first ] [ hint?>> ] bi* circular-push
+    ] when call-next-method ;
 
 M: grid-gadget draw-gadget*
     {

    [ dim>> [ 2 /i ] map ] [ draw-scaled-texture ] bi ;

:: draw-hint ( gadget -- )
    gadget hint?>> t eq? [
        gadget hand-rel first2 :> ( w h )
        h 58 >= [
            h 58 - w [ 32 /i ] bi@ :> ( row col )

        { T{ button-up { # 1 } } [ on-click ] }
        { T{ button-up { # 3 } } [ on-mark ] }
        { T{ key-down { sym " " } } [ on-mark ] }
        { motion [ relayout-1 ] }
    } assoc-union
] change-word-prop
