Use restart-alarm for ui blink code

db4
Doug Coleman 2010-05-24 22:48:48 -05:00
parent 99e3fe6a6e
commit 3a7f9c3947
1 changed files with 10 additions and 8 deletions

View File

@ -60,14 +60,11 @@ SYMBOL: blink-interval
750 milliseconds blink-interval set-global
: stop-blinking ( editor -- )
[ [ stop-alarm ] when* f ] change-blink-alarm drop ;
blink-alarm>> [ stop-alarm ] when* ;
: start-blinking ( editor -- )
[ stop-blinking ] [
t >>blink
dup '[ _ blink-caret ] blink-interval get delayed-every
>>blink-alarm drop
] bi ;
t >>blink
blink-alarm>> [ restart-alarm ] when* ;
: restart-blinking ( editor -- )
dup focused?>> [
@ -80,10 +77,15 @@ PRIVATE>
M: editor graft*
[ dup caret>> activate-editor-model ]
[ dup mark>> activate-editor-model ] bi ;
[ dup mark>> activate-editor-model ]
[
[
'[ _ blink-caret ] blink-interval get dup <alarm>
] keep blink-alarm<<
] tri ;
M: editor ungraft*
[ stop-blinking ]
[ [ stop-blinking ] [ f >>blink-alarm drop ] bi ]
[ dup caret>> deactivate-editor-model ]
[ dup mark>> deactivate-editor-model ] tri ;