models.delay: cache the timer, bug with restart-timer.
parent
81caec378d
commit
b7c43d6e04
|
@ -10,18 +10,15 @@ TUPLE: delay < model model timeout timer ;
|
||||||
|
|
||||||
: <delay> ( model timeout -- delay )
|
: <delay> ( model timeout -- delay )
|
||||||
f delay new-model
|
f delay new-model
|
||||||
|
dup '[ _ update-delay-model ] pick f <timer> >>timer
|
||||||
swap >>timeout
|
swap >>timeout
|
||||||
over >>model
|
over >>model
|
||||||
[ add-dependency ] keep ;
|
[ add-dependency ] keep ;
|
||||||
|
|
||||||
: stop-delay ( delay -- )
|
M: delay model-changed
|
||||||
timer>> [ stop-timer ] when* ;
|
! BUG: timer can't be "restart-timer" inside of its quotation?
|
||||||
|
! nip timer>> restart-timer ;
|
||||||
|
nip timer>> [ stop-timer ] [ start-timer ] bi ;
|
||||||
|
|
||||||
: start-delay ( delay -- )
|
|
||||||
[ '[ _ f >>timer update-delay-model ] ]
|
|
||||||
[ timeout>> later ]
|
|
||||||
[ timer<< ] tri ;
|
|
||||||
|
|
||||||
M: delay model-changed nip dup stop-delay start-delay ;
|
|
||||||
|
|
||||||
M: delay model-activated update-delay-model ;
|
M: delay model-activated update-delay-model ;
|
||||||
|
|
Loading…
Reference in New Issue