diff options
| author | Mattias Andrée <maandree@operamail.com> | 2013-08-06 03:52:32 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2013-08-06 03:52:32 +0200 |
| commit | 578b5f78cb6c2f9a5e99eefe10b4d3d644557f8d (patch) | |
| tree | 06205da0963e20cb14c062e9e8f03d8bbbb01bb7 /src/editor.py | |
| parent | fix some drawing issues (diff) | |
| download | pytagomacs-578b5f78cb6c2f9a5e99eefe10b4d3d644557f8d.tar.gz pytagomacs-578b5f78cb6c2f9a5e99eefe10b4d3d644557f8d.tar.bz2 pytagomacs-578b5f78cb6c2f9a5e99eefe10b4d3d644557f8d.tar.xz | |
fix point movement
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/editor.py')
| -rw-r--r-- | src/editor.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/editor.py b/src/editor.py index 87dab78..f128b8e 100644 --- a/src/editor.py +++ b/src/editor.py @@ -61,7 +61,7 @@ class TextArea(): def draw(self): leftside = '\033[%i;%iH\033[%s34m%s:\033[00m' % (self.area.top + self.y, self.area.left, '01;' if self.area.y == self.y else '', self.name) - text = self.text[self.area.offx if self.area.y == self.y else 0:][:self.area.areawidth] + text = (self.text[self.area.offx if self.area.y == self.y else 0:] + ' ' * self.area.areawidth)[:self.area.areawidth] if (self.area.y == self.y) and (self.area.mark is not None) and (self.area.mark >= 0): (a, b) = self.area.get_selection(True) if a != b: @@ -170,9 +170,20 @@ class TextArea(): if 0 <= x <= len(self.text): self.area.x = x if delta < 0: - print('\033[%iD' % -delta, end='') + if self.area.offx > self.area.x: + self.area.offx = self.area.x - self.area.areawidth + self.area.offx = max(self.area.offx, 0) + self.draw() + print('\033[%i;%iH' % (self.area.top + self.y, self.area.left + self.area.innerleft + self.area.x - self.area.offx), end='') + else: + print('\033[%iD' % -delta, end='') elif delta > 0: - print('\033[%iC' % delta, end='') + if self.area.x - self.area.offx > self.area.areawidth: + self.area.offx = self.area.x + self.draw() + print('\033[%i;%iH' % (self.area.top + self.y, self.area.left + self.area.innerleft), end='') + else: + print('\033[%iC' % delta, end='') return delta != 0 return False |
