diff options
author | Sören Tempel <soeren+git@soeren-tempel.net> | 2021-05-15 23:45:32 +0200 |
---|---|---|
committer | Sören Tempel <soeren+git@soeren-tempel.net> | 2021-05-15 23:45:32 +0200 |
commit | 5e59f4e549cf15dfa11af4a08f288752d6a9d0ce (patch) | |
tree | 93d6760b4a6406fa2ac87410985bee1719a3c040 | |
parent | 3c21361288d1d0304b76d25c49442f42567a26bc (diff) |
Support character deletion using backspace
-rw-r--r-- | src/terminal.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/terminal.py b/src/terminal.py index 673779f..fd405b8 100644 --- a/src/terminal.py +++ b/src/terminal.py @@ -13,6 +13,9 @@ from gi.repository import GLib WIN_TITLE = "saneterm" TERM = "dumb" +# XXX: Can also be looked up using unicodedata.lookup("DEL"). +DEL_CHAR = b'\x7f' + class PtySource(GLib.Source): master = -1 @@ -55,6 +58,7 @@ class Terminal(Gtk.Window): self.textbuffer = self.textview.get_buffer() self.textbuffer.connect("end-user-action", self.user_input) + self.textview.connect("backspace", self.backspace) end = self.textbuffer.get_end_iter() self.last_mark = self.textbuffer.create_mark(None, end, True) @@ -78,6 +82,9 @@ class Terminal(Gtk.Window): return GLib.SOURCE_CONTINUE + def backspace(self, textview): + os.write(self.pty.master, DEL_CHAR) + def user_input(self, buffer): start = buffer.get_iter_at_mark(self.last_mark) end = buffer.get_end_iter() |