diff --git a/wx/py/editwindow.py b/wx/py/editwindow.py index 99b0279e..fcaef992 100644 --- a/wx/py/editwindow.py +++ b/wx/py/editwindow.py @@ -297,3 +297,12 @@ class EditWindow(stc.StyledTextCtrl): # show and select the found text self.ShowPosition(loc) self.SetSelection(loc, loc + len(findstring)) + + def SetSelection(self, from_, to_): + """Selects the text starting at the first position up to + (but not including) the character at the last position. + """ + # (override) Patch for miss-insertion position when from_ > to_. + # Note: This is needed until the stc SetSelection bug is fixed. + self.SetAnchor(from_) + self.SetCurrentPos(to_) diff --git a/wx/py/shell.py b/wx/py/shell.py index 98934179..47ced4df 100755 --- a/wx/py/shell.py +++ b/wx/py/shell.py @@ -854,8 +854,8 @@ class Shell(editwindow.EditWindow): or (self.historyIndex >= len(self.history)-2): searchOrder = range(len(self.history)) else: - searchOrder = range(self.historyIndex+1, len(self.history)) + \ - range(self.historyIndex) + ls = list(range(len(self.history))) + searchOrder = ls[self.historyIndex+1:] + ls[:self.historyIndex] for i in searchOrder: command = self.history[i] if command[:len(searchText)] == searchText: diff --git a/wx/py/sliceshell.py b/wx/py/sliceshell.py index 3648001a..1bbc643d 100755 --- a/wx/py/sliceshell.py +++ b/wx/py/sliceshell.py @@ -2270,8 +2270,8 @@ class SlicesShell(editwindow.EditWindow): or (self.historyIndex >= len(self.history)-2): searchOrder = range(len(self.history)) else: - searchOrder = range(self.historyIndex+1, len(self.history)) + \ - range(self.historyIndex) + ls = list(range(len(self.history))) + searchOrder = ls[self.historyIndex+1:] + ls[:self.historyIndex] for i in searchOrder: command = self.history[i] if command[:len(searchText)] == searchText: