summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugin_manager.py5
-rw-r--r--src/tabs.py9
2 files changed, 5 insertions, 9 deletions
diff --git a/src/plugin_manager.py b/src/plugin_manager.py
index fe4d2b7e..437d8ee2 100644
--- a/src/plugin_manager.py
+++ b/src/plugin_manager.py
@@ -99,12 +99,15 @@ class PluginManager(object):
def add_tab_command(self, module_name, tab_type, name, handler, help, completion=None):
commands = self.tab_commands[module_name]
t = tab_type.__name__
+ if name in tab_type.plugin_commands:
+ return
if not t in commands:
commands[t] = []
commands[t].append((name, handler, help, completion))
+ tab_type.plugin_commands[name] = (handler, help, completion)
for tab in self.core.tabs:
if isinstance(tab, tab_type):
- tab.add_plugin_command(name, handler, help, completion)
+ tab.update_commands()
def del_tab_command(self, module_name, tab_type, name):
commands = self.tab_commands[module_name]
diff --git a/src/tabs.py b/src/tabs.py
index 472a15fa..28bb90d2 100644
--- a/src/tabs.py
+++ b/src/tabs.py
@@ -222,17 +222,10 @@ class Tab(object):
def on_input(self, key):
pass
- def add_plugin_command(self, name, handler, help, completion=None):
- if name in self.plugin_commands or name in self.commands:
- return
- self.plugin_commands[name] = (handler, help, completion)
- self.commands[name] = (handler, help, completion)
- self.update_commands()
-
def update_commands(self):
for c in self.plugin_commands:
if not c in self.commands:
- self.commands[name] = self.plugin_commands[c]
+ self.commands[c] = self.plugin_commands[c]
def on_lose_focus(self):
"""