summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2011-03-26 00:32:00 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2011-03-26 00:32:00 (GMT)
commite7665c4cf3ec73a8d43c8ab489abc2ed8deae389 (patch)
tree1c6f113c4561443be0dc5db0a2389cea8a2a9894
parent1103d05775b41191163379f191d184c6b8a4b1d0 (diff)
parent946f17214c5e344b4297d9d7f3d8abe2a399bb53 (diff)
downloadcpython-e7665c4cf3ec73a8d43c8ab489abc2ed8deae389.zip
cpython-e7665c4cf3ec73a8d43c8ab489abc2ed8deae389.tar.gz
cpython-e7665c4cf3ec73a8d43c8ab489abc2ed8deae389.tar.bz2
Merge from 3.1
-rw-r--r--Lib/idlelib/EditorWindow.py21
-rw-r--r--Lib/idlelib/NEWS.txt5
2 files changed, 13 insertions, 13 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index aeec9bf..ffc4e88 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -306,10 +306,10 @@ class EditorWindow(object):
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 a825dc5..deeb4a6 100644
--- a/Lib/idlelib/NEWS.txt
+++ b/Lib/idlelib/NEWS.txt
@@ -3,7 +3,10 @@ What's New in IDLE 3.1.4?
*Release date: XX-XXX-XX*
-- <Home> toggle non-functional when NumLock set on Windows. Issue3851.
+- <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?