diff options
| author | Mattias Andrée <maandree@operamail.com> | 2013-09-10 11:09:24 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2013-09-10 11:09:24 +0200 |
| commit | da4dfd746e3d04b22cb6f8ac40c3e800d3f7fa8e (patch) | |
| tree | 241c39fb30a9368e0e4d7f5ed7b6825f429d710c | |
| parent | print number of hidden lines (diff) | |
| download | pytagomacs-da4dfd746e3d04b22cb6f8ac40c3e800d3f7fa8e.tar.gz pytagomacs-da4dfd746e3d04b22cb6f8ac40c3e800d3f7fa8e.tar.bz2 pytagomacs-da4dfd746e3d04b22cb6f8ac40c3e800d3f7fa8e.tar.xz | |
fix some cursur issues and screen offset issues
Signed-off-by: Mattias Andrée <maandree@operamail.com>
| -rw-r--r-- | src/editor.py | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/editor.py b/src/editor.py index d2117cb..f09c5b2 100644 --- a/src/editor.py +++ b/src/editor.py @@ -84,7 +84,7 @@ class TextArea(): self.killring = Killring() data = lambda field : datamap[field] if field in datamap else '' self.lines = [TextArea.Line(self, self.fields[y], data(self.fields[y]), y) for y in range(len(self.fields))] - self.areawidth = self.width - self.innerleft - self.left + 1 + self.areawidth = self.width - self.innerleft self.y, self.offy, self.x, self.offx, self.mark = 0, 0, 0, 0, None self.last_alert, self.last_status, self.alerted = None, None, False @@ -301,16 +301,14 @@ class TextArea(): self.area.x = x if delta < 0: if self.area.offx > self.area.x: - self.area.offx = max(self.area.x - self.area.areawidth, 0) + self.area.offx = max(self.area.x - 3 * self.area.areawidth // 4, 0) self.draw() - self.jump(self.area.x - self.area.offx)() else: print('\033[%iD' % -delta, end='') elif delta > 0: if self.area.x - self.area.offx > self.area.areawidth: - self.area.offx = self.area.x + self.area.offx = self.area.x - self.area.areawidth // 4 self.draw() - self.jump(0)() else: print('\033[%iC' % delta, end='') return delta != 0 @@ -369,7 +367,7 @@ class TextArea(): def limit_text(self, text): - max_len = self.width - self.left + max_len = self.width if len(text) > max_len: text = text[:max_len - 1] + '…' return text @@ -383,7 +381,7 @@ class TextArea(): txt = ' (' + text + ') ' y = self.top + self.y - self.offy x = self.left + self.innerleft + self.x - self.offx - dashes = max(self.width - len(txt) - self.left, 0) + dashes = max(self.width - len(txt), 0) Jump(self.top + self.height - 2, self.left)() print('\033[7m%s-\033[27m%s' % (self.limit_text(txt + '-' * dashes), Jump(y, x)), end='') self.last_status = text |
