def set_tortoise_keys(window, connect=True): 'Set default TortoiseHg keyboard accelerators' if sys.platform == 'darwin': mask = gtk.accelerator_get_default_mod_mask() mask |= gtk.gdk.MOD1_MASK; gtk.accelerator_set_default_mod_mask(mask) mod = get_thg_modifier() accelgroup = gtk.AccelGroup() window.add_accel_group(accelgroup) default_accelerators = [ (mod+'w', 'thg-close'), (mod+'q', 'thg-exit'), ('F5', 'thg-refresh'), (mod+'r', 'thg-refresh'), (mod+'Return', 'thg-accept'), ] for accelerator, signal in default_accelerators: add_accelerator(window, signal, accelgroup, accelerator) # connect ctrl-w and ctrl-q to every window if connect: window.connect('thg-close', thgclose) window.connect('thg-exit', thgexit) return accelgroup, mod
# -*- coding: utf-8 -*- from bisect import bisect import gtk from gtk.keysyms import F2, Escape, Control_L, Control_R, Alt_L, Alt_R, Shift_L, Shift_R from gtk.gdk import SHIFT_MASK, CONTROL_MASK, MOD1_MASK, SUPER_MASK from .utils import make_missing_dirs ANY_CTX = ('any', ) DEFAULT_PRIORITY = 0 gtk.accelerator_set_default_mod_mask(SHIFT_MASK | CONTROL_MASK | MOD1_MASK | SUPER_MASK) def parse_accel(accel, priority=None): if priority is None: priority = DEFAULT_PRIORITY key, _modifier = km = gtk.accelerator_parse(accel) if key == 0: import warnings warnings.warn("Can't parse %s" % accel) return km, priority def normalize_context(ctx): if isinstance(ctx, tuple): return ctx else: return (ctx,)