diff options
author | fvogel <fvogelnew1@free.fr> | 2015-10-04 09:04:42 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2015-10-04 09:04:42 (GMT) |
commit | 605af9dd39143e83428df6fd8c1f06955da799fa (patch) | |
tree | 3f6de39fa985cc913d002206c7040312f1147baa | |
parent | 520dc94723941cbb70de8f216cb8dce3868bfa59 (diff) | |
download | tk-605af9dd39143e83428df6fd8c1f06955da799fa.zip tk-605af9dd39143e83428df6fd8c1f06955da799fa.tar.gz tk-605af9dd39143e83428df6fd8c1f06955da799fa.tar.bz2 |
Fixed bug [1669632fff] case (v) - <<Clear>> is atomic
-rw-r--r-- | library/text.tcl | 8 | ||||
-rw-r--r-- | tests/text.test | 20 |
2 files changed, 28 insertions, 0 deletions
diff --git a/library/text.tcl b/library/text.tcl index f973984..d7c0935 100644 --- a/library/text.tcl +++ b/library/text.tcl @@ -262,7 +262,15 @@ bind Text <<Paste>> { tk_textPaste %W } bind Text <<Clear>> { + # Make <<Clear>> an atomic operation on the Undo stack, + # i.e. separate it from other delete operations on either side + if {[%W cget -autoseparators]} { + %W edit separator + } catch {%W delete sel.first sel.last} + if {[%W cget -autoseparators]} { + %W edit separator + } } bind Text <<PasteSelection>> { if {$tk_strictMotif || ![info exists tk::Priv(mouseMoved)] diff --git a/tests/text.test b/tests/text.test index 4eeb8e4..023aedf 100644 --- a/tests/text.test +++ b/tests/text.test @@ -3254,6 +3254,26 @@ test text-25.21 {patch 1669632 (vii) - <<Undo>> shall not remove separators} -se } -cleanup { destroy .t } -result "This WORLD is an example text" +test text-25.22 {patch 1669632 (v) - <<Clear>> is atomic} -setup { + destroy .t +} -body { + toplevel .top + pack [text .top.t -undo 1] + .top.t insert end "This is an example text" + .top.t edit reset + .top.t mark set insert 1.5 + .top.t insert 1.5 "A" + update + focus -force .top.t + event generate .top.t <Delete> + event generate .top.t <Shift-Right> + event generate .top.t <<Clear>> + event generate .top.t <Delete> + event generate .top.t <<Undo>> + .top.t get 1.0 "1.0 lineend" +} -cleanup { + destroy .t +} -result "This A an example text" test text-26.1 {bug fix - 624372, ControlUtfProc long lines} { destroy .t |