]> gitweb.factorcode.org Git - factor.git/commitdiff
Use restart-alarm for ui blink code
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 25 May 2010 03:48:48 +0000 (22:48 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 25 May 2010 03:59:25 +0000 (22:59 -0500)
basis/ui/gadgets/editors/editors.factor

index 15d21466032dccccb7c31f106cc5f12c6a62b4ab..4777e42abcaa28e65dbd98482f604be67d302e4d 100644 (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 ;