From a8d1ec34f8c227d8af953b1f7df04afd846f5aa6 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 20 Oct 2008 23:28:02 -0500 Subject: [PATCH] Fix an UI bug and remove some pick usages --- basis/ui/tools/listener/listener-tests.factor | 4 +++- basis/ui/tools/listener/listener.factor | 11 ++++++----- basis/ui/tools/tools.factor | 8 ++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/basis/ui/tools/listener/listener-tests.factor b/basis/ui/tools/listener/listener-tests.factor index e86b52c664..616226a9c5 100644 --- a/basis/ui/tools/listener/listener-tests.factor +++ b/basis/ui/tools/listener/listener-tests.factor @@ -2,7 +2,7 @@ USING: continuations documents ui.tools.interactor ui.tools.listener hashtables kernel namespaces parser sequences tools.test ui.commands ui.gadgets ui.gadgets.editors ui.gadgets.panes vocabs words tools.test.ui slots.private -threads arrays generic threads accessors listener ; +threads arrays generic threads accessors listener math ; IN: ui.tools.listener.tests [ f ] [ "word" source-editor command-map commands>> empty? ] unit-test @@ -51,3 +51,5 @@ IN: ui.tools.listener.tests [ ] [ "listener" get com-end ] unit-test ] with-grafted-gadget + +[ ] [ \ + interactor-use use-if-necessary ] unit-test diff --git a/basis/ui/tools/listener/listener.factor b/basis/ui/tools/listener/listener.factor index 6fc6fa4f10..4c8b88d62c 100644 --- a/basis/ui/tools/listener/listener.factor +++ b/basis/ui/tools/listener/listener.factor @@ -101,8 +101,8 @@ M: engine-word word-completion-string "engine-generic" word-prop word-completion-string ; : use-if-necessary ( word seq -- ) - over vocabulary>> [ - 2dup assoc-stack pick = [ 2drop ] [ + over vocabulary>> over and [ + 2dup [ assoc-stack ] keep = [ 2drop ] [ >r vocabulary>> vocab-words r> push ] if ] [ 2drop ] if ; @@ -114,9 +114,10 @@ M: engine-word word-completion-string 2bi ; : quot-action ( interactor -- lines ) - dup control-value - dup "\n" join pick add-interactor-history - swap select-all ; + [ control-value ] keep + [ [ "\n" join ] dip add-interactor-history ] + [ select-all ] + 2bi ; TUPLE: stack-display < track ; diff --git a/basis/ui/tools/tools.factor b/basis/ui/tools/tools.factor index f4205061cd..aed4b9d675 100644 --- a/basis/ui/tools/tools.factor +++ b/basis/ui/tools/tools.factor @@ -40,11 +40,11 @@ IN: ui.tools : resize-workspace ( workspace -- ) dup sizes>> over control-value zero? [ - 1/5 1 pick set-nth - 4/5 2 rot set-nth + 1/5 over set-second + 4/5 swap set-third ] [ - 2/3 1 pick set-nth - 1/3 2 rot set-nth + 2/3 over set-second + 1/3 swap set-third ] if relayout ; M: workspace model-changed