Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCasey DeLorme <CDeLorme@gmail.com>2013-06-24 16:50:34 (GMT)
committer Casey DeLorme <CDeLorme@gmail.com>2013-06-24 16:50:34 (GMT)
commitda1592c6e74944ce161a5ce2561ed14e291331df (patch)
tree9632705ee4a678f005578ddda741528f1e08ddea
parent20d3af80c27932501a0071aa892f90623e750de0 (diff)
Added hotkeys and go_to_tab methods to terminal for tab management without mouse dependency.HEADmaster
-rw-r--r--terminal.py31
1 files changed, 30 insertions, 1 deletions
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):