diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2009-10-25 13:47:16 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2009-10-25 13:47:16 (GMT) |
commit | 03be57bf29ab5c74d5c517f01b29f3bfbb706f7d (patch) | |
tree | acc6b1fae1613bcdc160a85973d4a0c4b841b999 | |
parent | 111d9451cc192469f7e9d1224dc30bcebe3e82fd (diff) | |
download | tk-03be57bf29ab5c74d5c517f01b29f3bfbb706f7d.zip tk-03be57bf29ab5c74d5c517f01b29f3bfbb706f7d.tar.gz tk-03be57bf29ab5c74d5c517f01b29f3bfbb706f7d.tar.bz2 |
Fix [Bug 1854913] by improving the class bindings.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | library/text.tcl | 20 |
2 files changed, 17 insertions, 9 deletions
@@ -1,3 +1,9 @@ +2009-10-25 Donal K. Fellows <dkf@users.sf.net> + + * library/text.tcl: [Bug 1854913]: Stop <Delete> actions from ever + deleting backwards, even when the insertion cursor is "at the end" of + the text widget. + 2009-10-24 Donal K. Fellows <dkf@users.sf.net> * library/button.tcl, unix/tkUnixButton.c (TkpDisplayButton): diff --git a/library/text.tcl b/library/text.tcl index e4bd77d..509d425 100644 --- a/library/text.tcl +++ b/library/text.tcl @@ -3,7 +3,7 @@ # This file defines the default bindings for Tk text widgets and provides # procedures that help in implementing the bindings. # -# RCS: @(#) $Id: text.tcl,v 1.43 2008/12/28 23:43:14 dkf Exp $ +# RCS: @(#) $Id: text.tcl,v 1.44 2009/10/25 13:47:16 dkf Exp $ # # Copyright (c) 1992-1994 The Regents of the University of California. # Copyright (c) 1994-1997 Sun Microsystems, Inc. @@ -211,15 +211,19 @@ bind Text <Delete> { if {[%W tag nextrange sel 1.0 end] ne ""} { %W delete sel.first sel.last } else { - %W delete insert + if {[%W compare end != insert+1c]} { + %W delete insert + } %W see insert } } bind Text <BackSpace> { if {[%W tag nextrange sel 1.0 end] ne ""} { %W delete sel.first sel.last - } elseif {[%W compare insert != 1.0]} { - %W delete insert-1c + } else { + if {[%W compare insert != 1.0]} { + %W delete insert-1c + } %W see insert } } @@ -296,7 +300,7 @@ bind Text <Control-b> { } } bind Text <Control-d> { - if {!$tk_strictMotif} { + if {!$tk_strictMotif && [%W compare end != insert+1c]} { %W delete insert } } @@ -311,7 +315,7 @@ bind Text <Control-f> { } } bind Text <Control-k> { - if {!$tk_strictMotif} { + if {!$tk_strictMotif && [%W compare end != insert+1c]} { if {[%W compare insert == {insert lineend}]} { %W delete insert } else { @@ -355,7 +359,7 @@ bind Text <Meta-b> { } } bind Text <Meta-d> { - if {!$tk_strictMotif} { + if {!$tk_strictMotif && [%W compare end != insert+1c]} { %W delete insert [tk::TextNextWord %W insert] } } @@ -759,7 +763,6 @@ proc ::tk::TextAutoScan {w} { # pos - The desired new position for the cursor in the window. proc ::tk::TextSetCursor {w pos} { - if {[$w compare $pos == end]} { set pos {end - 1 chars} } @@ -782,7 +785,6 @@ proc ::tk::TextSetCursor {w pos} { # actually been moved to this position yet). proc ::tk::TextKeySelect {w new} { - set anchorname [tk::TextAnchor $w] if {[$w tag nextrange sel 1.0 end] eq ""} { if {[$w compare $new < insert]} { |