+ scrolloffset = self.GetScrollPos(wx.HORIZONTAL)
+
+ # scroll foreward
+ if x0+x1-scrolloffset > self.GetSize()[0]:
+ if wx.Platform == "__WXMSW__":
+ # don't start scrolling unless we really need to
+ offset = x0+x1-self.GetSize()[0]-scrolloffset
+ # scroll a bit more than what is minimum required
+ # so we don't have to scroll everytime the user presses TAB
+ # which is very tireing to the eye
+ addoffset = self.GetSize()[0]/4
+ # but be careful at the end of the list
+ if addoffset + scrolloffset < self.GetSize()[0]:
+ offset += addoffset
+
+ self.ScrollList(offset, 0)
+ scrolloffset = self.GetScrollPos(wx.HORIZONTAL)
+ else:
+ # Since we can not programmatically scroll the ListCtrl
+ # close the editor so the user can scroll and open the editor
+ # again
+ self.CloseEditor()
+ return
+