summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/windows.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/windows.py b/src/windows.py
index a270d732..0a31deed 100644
--- a/src/windows.py
+++ b/src/windows.py
@@ -1320,10 +1320,18 @@ class Input(Win):
"""
if reset:
self.reset_completion()
- if self.pos == self.width-1 and self.line_pos > 0:
- self.line_pos -= 1
+
+ if self.pos < (3*(self.width)//4) and self.line_pos > 0 and self.line_pos+self.pos-1<=len(self.text):
+ self.line_pos -= self.width//4
+ if self.line_pos < 0:
+ self.pos += (self.width//4) + self.line_pos - 1
+ self.line_pos = 0
+ else:
+ self.pos += self.width//4 - 1
elif self.pos >= 1:
self.pos -= 1
+ elif self.line_pos > 0:
+ self.line_pos -= 1
if jump and self.pos+self.line_pos >= 1 and self.text[self.pos+self.line_pos-1] == '\x19':
self.key_left()
elif reset: