diff options
author | fvogel <fvogelnew1@free.fr> | 2015-10-04 13:55:14 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2015-10-04 13:55:14 (GMT) |
commit | 69babf2af132856cc0221306450c09b368f89e9c (patch) | |
tree | 2c7eb6754c364df033025c9294a945c01fd96196 | |
parent | d18323e55843fd090168c487519968d92c6ebe37 (diff) | |
download | tk-69babf2af132856cc0221306450c09b368f89e9c.zip tk-69babf2af132856cc0221306450c09b368f89e9c.tar.gz tk-69babf2af132856cc0221306450c09b368f89e9c.tar.bz2 |
Fixed bug [1669632fff] case (vi) - <<Cut>> is atomic
-rw-r--r-- | library/text.tcl | 9 | ||||
-rw-r--r-- | tests/text.test | 20 |
2 files changed, 29 insertions, 0 deletions
diff --git a/library/text.tcl b/library/text.tcl index d7c0935..792ee3b 100644 --- a/library/text.tcl +++ b/library/text.tcl @@ -1081,9 +1081,18 @@ proc ::tk_textCopy w { proc ::tk_textCut w { if {![catch {set data [$w get sel.first sel.last]}]} { + # make <<Cut>> an atomic operation on the Undo stack, + # i.e. separate it from other delete operations on either side + set oldSeparator [$w cget -autoseparators] + if {$oldSeparator} { + $w edit separator + } clipboard clear -displayof $w clipboard append -displayof $w $data $w delete sel.first sel.last + if {$oldSeparator} { + $w edit separator + } } } diff --git a/tests/text.test b/tests/text.test index a85edfa..2e5e495 100644 --- a/tests/text.test +++ b/tests/text.test @@ -3274,6 +3274,26 @@ test text-25.22 {patch 1669632 (v) - <<Clear>> is atomic} -setup { } -cleanup { destroy .top.t .top } -result "This A an example text" + test text-25.23 {patch 1669632 (v) - <<Cut>> 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 <<Cut>> + event generate .top.t <Delete> + event generate .top.t <<Undo>> + .top.t get 1.0 "1.0 lineend" +} -cleanup { + destroy .top.t .top +} -result "This A an example text" test text-26.1 {bug fix - 624372, ControlUtfProc long lines} { destroy .t |