diff --git a/src/calibre/gui2/tweak_book/boss.py b/src/calibre/gui2/tweak_book/boss.py index a900a9a209..134c7973de 100644 --- a/src/calibre/gui2/tweak_book/boss.py +++ b/src/calibre/gui2/tweak_book/boss.py @@ -221,6 +221,7 @@ class Boss(QObject): c = current_container() editor.load_text(c.decode(c.open(name).read())) self.gui.central.show_editor(editor) + self.gui.keyboard.set_mode(syntax) def edit_file_requested(self, name, syntax, mime): if name in self.editors: diff --git a/src/calibre/gui2/tweak_book/keyboard.py b/src/calibre/gui2/tweak_book/keyboard.py index 6f3a7ca2cb..8c409bac48 100644 --- a/src/calibre/gui2/tweak_book/keyboard.py +++ b/src/calibre/gui2/tweak_book/keyboard.py @@ -31,10 +31,15 @@ class KeyboardManager(object): km.finalize() def set_mode(self, name): - km = self.modes[name] - for un, action in self.actions.iteritems(): - keys = km.keys_map[un] - action.setShortcuts(list(keys)) - self.current_mode = name + try: + km = self.modes[name] + except KeyError: + name = 'other' + km = self.modes[name] + if name != self.current_mode: + for un, action in self.actions.iteritems(): + keys = km.keys_map[un] + action.setShortcuts(list(keys)) + self.current_mode = name