Ctrl-Tab and Ctrl-Shift-Tab are actually valid keybindings. Teach keybindings.py that some items may have more than one keybinding by supporting optional tuples in defaults.

This commit is contained in:
Thomas Hurst 2008-08-23 23:57:51 +01:00
parent f37324303b
commit 0a6acc19dc
2 changed files with 28 additions and 24 deletions

View File

@ -105,8 +105,8 @@ Defaults = {
'zoom_normal' : '<Ctrl>0', 'zoom_normal' : '<Ctrl>0',
'new_root_tab' : '<Ctrl><Shift><Alt>T', 'new_root_tab' : '<Ctrl><Shift><Alt>T',
'new_tab' : '<Ctrl><Shift>T', 'new_tab' : '<Ctrl><Shift>T',
'go_next' : '<Ctrl><Shift>N', 'go_next' : ('<Ctrl><Shift>N','<Ctrl>Tab'),
'go_prev' : '<Ctrl><Shift>P', 'go_prev' : ('<Ctrl><Shift>P','<Ctrl><Shift>Tab'),
'split_horiz' : '<Ctrl><Shift>O', 'split_horiz' : '<Ctrl><Shift>O',
'split_vert' : '<Ctrl><Shift>E', 'split_vert' : '<Ctrl><Shift>E',
'close_term' : '<Ctrl><Shift>W', 'close_term' : '<Ctrl><Shift>W',

View File

@ -32,11 +32,15 @@ class TerminatorKeybindings:
def reload(self): def reload(self):
self._lookup = {} self._lookup = {}
self._masks = 0 self._masks = 0
for action, binding in self.keys.items(): for action, bindings in self.keys.items():
if not isinstance(bindings, tuple):
bindings = (bindings,)
for binding in bindings:
try: try:
keyval, mask = self._parsebinding(binding) keyval, mask = self._parsebinding(binding)
# Does much the same, but with poorer error handling.
#keyval, mask = gtk.accelerator_parse(binding) #keyval, mask = gtk.accelerator_parse(binding)
#mask = int(mask)
except KeymapError, e: except KeymapError, e:
e.action = action e.action = action
raise e raise e