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