diff options
author | guido@google.com <guido@google.com> | 2011-03-29 12:09:45 -0700 |
---|---|---|
committer | guido@google.com <guido@google.com> | 2011-03-29 12:09:45 -0700 |
commit | 69cfcabae3d72845d44e1078d25072fdbb02072c (patch) | |
tree | 0aedaa424e8c8f7139567aed7b6980ea59e16c97 /Lib/idlelib | |
parent | 2008a8f8c09b18fbd24e8039553d50a828dd3fb2 (diff) | |
parent | e6c1eb92675f67d1907bd7ba00c44262c18e93d4 (diff) | |
download | cpython-git-69cfcabae3d72845d44e1078d25072fdbb02072c.tar.gz |
Merge.
Diffstat (limited to 'Lib/idlelib')
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 27 | ||||
-rw-r--r-- | Lib/idlelib/NEWS.txt | 13 |
2 files changed, 24 insertions, 16 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index a37cb1d9bc..ffc4e88d9d 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -303,13 +303,13 @@ class EditorWindow(object): return "break" def home_callback(self, event): - if (event.state & 12) != 0 and event.keysym == "Home": - # state&1==shift, state&4==control, state&8==alt - return # <Modifier-Home>; fall back to class binding - + if (event.state & 4) != 0 and event.keysym == "Home": + # state&4==Control. If <Control-Home>, use the Tk binding. + return if self.text.index("iomark") and \ self.text.compare("iomark", "<=", "insert lineend") and \ self.text.compare("insert linestart", "<=", "iomark"): + # In Shell on input line, go to just after prompt insertpt = int(self.text.index("iomark").split(".")[1]) else: line = self.text.get("insert linestart", "insert lineend") @@ -318,30 +318,27 @@ class EditorWindow(object): break else: insertpt=len(line) - lineat = int(self.text.index("insert").split('.')[1]) - if insertpt == lineat: insertpt = 0 - dest = "insert linestart+"+str(insertpt)+"c" - if (event.state&1) == 0: - # shift not pressed + # shift was not pressed self.text.tag_remove("sel", "1.0", "end") else: if not self.text.index("sel.first"): - self.text.mark_set("anchor","insert") - + self.text.mark_set("my_anchor", "insert") # there was no previous selection + else: + if self.text.compare(self.text.index("sel.first"), "<", self.text.index("insert")): + self.text.mark_set("my_anchor", "sel.first") # extend back + else: + self.text.mark_set("my_anchor", "sel.last") # extend forward first = self.text.index(dest) - last = self.text.index("anchor") - + last = self.text.index("my_anchor") if self.text.compare(first,">",last): first,last = last,first - self.text.tag_remove("sel", "1.0", "end") self.text.tag_add("sel", first, last) - self.text.mark_set("insert", dest) self.text.see("insert") return "break" diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 037b02a3c1..deeb4a6a84 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,4 +1,15 @@ -What's New in IDLE 3.1? +What's New in IDLE 3.1.4? +========================= + +*Release date: XX-XXX-XX* + +- <Home> toggle failing on Tk 8.5, causing IDLE exits and strange selection + behavior. Issue 4676. Improve selection extension behaviour. +- <Home> toggle non-functional when NumLock set on Windows. Issue 3851. + + + +What's New in IDLE 3.1b1? ========================= *Release date: 27-Jun-09* |