From da1592c6e74944ce161a5ce2561ed14e291331df Mon Sep 17 00:00:00 2001 From: Casey DeLorme Date: Mon, 24 Jun 2013 16:50:34 +0000 Subject: Added hotkeys and go_to_tab methods to terminal for tab management without mouse dependency. --- diff --git a/terminal.py b/terminal.py index ae81b0e..7cf7d57 100644 --- a/terminal.py +++ b/terminal.py @@ -265,6 +265,12 @@ class TerminalActivity(activity.Activity): vt = self._notebook.get_nth_page(self._notebook.get_current_page()).vt vt.grab_focus() + def __go_to_tab_cb(self, tab): + if tab <= self._notebook.get_n_pages(): + self._notebook.props.page = tab - 1 + vt = self._notebook.get_nth_page(self._notebook.get_current_page()).vt + vt.grab_focus() + def _close_tab(self, index): self._notebook.remove_page(index) if self._notebook.get_n_pages() == 0: @@ -387,11 +393,34 @@ class TerminalActivity(activity.Activity): event_to_vt(event) return True - elif event.get_state() & gtk.gdk.CONTROL_MASK: + elif event.get_state() & Gdk.ModifierType.CONTROL_MASK: if key_name in ['z', 'q']: event_to_vt(event) return True + # Go To Tab + elif key_name in ['1', '2', '3', '4', '5', '6', '7', '8', '9']: + self.__go_to_tab_cb(int(key_name)) + return True + + if event.get_state() & Gdk.ModifierType.SHIFT_MASK: + # New Tab + if key_name == 'T': + self.__open_tab_cb(None) + return True + + # Close Tab + elif key_name == 'W': + self.__close_tab_cb(None, self._notebook.get_nth_page(self._notebook.get_current_page())) + return True + + elif key_name == 'braceright': + self.__next_tab_cb(None) + return False + elif key_name == 'braceleft': + self.__prev_tab_cb(None) + return False + return False def read_file(self, file_path): -- cgit v0.9.1