From decdcbe120487fec050b2fe8de070c20a087734d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 20 Nov 2008 22:14:35 -0600 Subject: [PATCH] Stop blinking in ungraft just in case --- basis/ui/gadgets/editors/editors.factor | 37 +++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/basis/ui/gadgets/editors/editors.factor b/basis/ui/gadgets/editors/editors.factor index 2ab39ada31..ebe092aa10 100644 --- a/basis/ui/gadgets/editors/editors.factor +++ b/basis/ui/gadgets/editors/editors.factor @@ -45,6 +45,24 @@ focused? blink blink-alarm ; dup deactivate-model swap model>> remove-loc ; +: blink-caret ( editor -- ) + [ not ] change-blink relayout-1 ; + +: start-blinking ( editor -- ) + t >>blink + dup '[ _ blink-caret ] 750 milliseconds every >>blink-alarm drop ; + +: stop-blinking ( editor -- ) + blink-alarm>> cancel-alarm ; + +: restart-blinking ( editor -- ) + dup focused?>> [ + [ stop-blinking ] + [ start-blinking ] + [ relayout-1 ] + tri + ] [ drop ] if ; + M: editor graft* dup dup caret>> activate-editor-model @@ -52,6 +70,7 @@ M: editor graft* M: editor ungraft* dup + dup stop-blinking dup caret>> deactivate-editor-model dup mark>> deactivate-editor-model ; @@ -96,24 +115,6 @@ M: editor ungraft* : click-loc ( editor model -- ) [ clicked-loc ] dip set-model ; -: blink-caret ( editor -- ) - [ not ] change-blink relayout-1 ; - -: start-blinking ( editor -- ) - t >>blink - dup '[ _ blink-caret ] 750 milliseconds every >>blink-alarm drop ; - -: stop-blinking ( editor -- ) - blink-alarm>> cancel-alarm ; - -: restart-blinking ( editor -- ) - dup focused?>> [ - [ stop-blinking ] - [ start-blinking ] - [ relayout-1 ] - tri - ] [ drop ] if ; - : focus-editor ( editor -- ) dup start-blinking t >>focused?