diff --git a/extra/documents/documents.factor b/extra/documents/documents.factor index 01034e0e3f..97433d247f 100755 --- a/extra/documents/documents.factor +++ b/extra/documents/documents.factor @@ -195,11 +195,11 @@ TUPLE: one-word-elt ; M: one-word-elt prev-elt drop - [ [ f -rot >r 1- r> (prev-word) ] (word-elt) ] (prev-char) ; + [ f -rot >r 1- r> (prev-word) ] (word-elt) ; M: one-word-elt next-elt drop - [ [ f -rot (next-word) ] (word-elt) ] (next-char) ; + [ f -rot (next-word) ] (word-elt) ; TUPLE: word-elt ; diff --git a/extra/springies/models/2x2snake/deploy.factor b/extra/springies/models/2x2snake/deploy.factor new file mode 100644 index 0000000000..1ad6cfe172 --- /dev/null +++ b/extra/springies/models/2x2snake/deploy.factor @@ -0,0 +1,13 @@ +USING: tools.deploy.config ; +H{ + { deploy-compiler? t } + { deploy-word-props? f } + { deploy-ui? t } + { deploy-reflection 1 } + { deploy-name "springies.models.2x2snake" } + { deploy-c-types? f } + { deploy-word-defs? f } + { "stop-after-last-window?" t } + { deploy-math? t } + { deploy-io 1 } +} diff --git a/extra/ui/gadgets/editors/editors-tests.factor b/extra/ui/gadgets/editors/editors-tests.factor index 6be0423e95..cbccb37111 100755 --- a/extra/ui/gadgets/editors/editors-tests.factor +++ b/extra/ui/gadgets/editors/editors-tests.factor @@ -30,6 +30,16 @@ tools.test.inference tools.test.ui models ; ] with-grafted-gadget ] unit-test +[ "bar" ] [ + "editor" set + "editor" get [ + "bar\nbaz quux" "editor" get set-editor-string + { 0 3 } "editor" get editor-caret set-model + "editor" get select-word + "editor" get gadget-selection + ] with-grafted-gadget +] unit-test + { 0 1 } [ ] unit-test-effect "hello" "field" set diff --git a/extra/ui/gadgets/editors/editors.factor b/extra/ui/gadgets/editors/editors.factor index 84cc01cdb6..eb1d5daf26 100755 --- a/extra/ui/gadgets/editors/editors.factor +++ b/extra/ui/gadgets/editors/editors.factor @@ -320,11 +320,6 @@ M: editor gadget-text* editor-string % ; : end-of-document ( editor -- ) T{ doc-elt } editor-next ; -: selected-word ( editor -- string ) - dup gadget-selection? [ - dup T{ one-word-elt } select-elt - ] unless gadget-selection ; - : position-caret ( editor -- ) mouse-elt dup T{ one-char-elt } = [ drop dup extend-selection dup editor-mark click-loc ] @@ -408,6 +403,11 @@ editor "caret-motion" f { : select-word T{ one-word-elt } select-elt ; +: selected-word ( editor -- string ) + dup gadget-selection? + [ dup select-word ] unless + gadget-selection ; + : select-previous-character T{ char-elt } editor-select-prev ; : select-next-character T{ char-elt } editor-select-next ;