diff --git a/core/buffer.py b/core/buffer.py index e81cdcb..a5e8d1e 100644 --- a/core/buffer.py +++ b/core/buffer.py @@ -234,6 +234,9 @@ class Buffer(QGraphicsScene): def execute_function(self, function_name): getattr(self, function_name)() + def call_function(self, function_name): + return getattr(self, function_name)() + def fake_key_event_filter(self, event_string): pass diff --git a/eaf.py b/eaf.py index 26cd880..b0cedd2 100755 --- a/eaf.py +++ b/eaf.py @@ -243,8 +243,17 @@ class EAF(dbus.service.Object): if buffer_id in self.buffer_dict: try: self.buffer_dict[buffer_id].execute_function(function_name) + except AttributeError: + self.message_to_emacs("Can't execute function: " + function_name) + + @dbus.service.method(EAF_DBUS_NAME, in_signature="ss", out_signature="s") + def call_function(self, buffer_id, function_name): + if buffer_id in self.buffer_dict: + try: + return self.buffer_dict[buffer_id].call_function(function_name) except AttributeError: self.message_to_emacs("Can't call function: " + function_name) + return "" @dbus.service.method(EAF_DBUS_NAME, in_signature="ss", out_signature="") def send_key(self, buffer_id, event_string):