No matter how many elisp variables, only called once DBus method

master
Andy Stewart 6 years ago
parent 5956827745
commit 0d19068c66
  1. 5
      eaf.el
  2. 12
      eaf.py

@ -731,8 +731,9 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)"
(defun eaf-send-var-to-python ()
"Send variables defined in `eaf-var-list' to the Python side."
(cl-loop for (sym . val) in eaf-var-list
do (eaf-call "store_emacs_var" (symbol-name sym) val)))
(eaf-call "store_emacs_var"
(string-join (loop for (key . value) in eaf-var-list
collect (format "%s,%s" key value)) ":")))
(dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf"

@ -252,11 +252,13 @@ class EAF(dbus.service.Object):
if buffer.buffer_id == buffer_id:
buffer.handle_input_message(callback_type, callback_result)
@dbus.service.method(EAF_DBUS_NAME, in_signature="ss", out_signature="")
def store_emacs_var(self, var_name, var_value):
for buffer in list(self.buffer_dict.values()):
buffer.emacs_var_dict[var_name] = var_value
buffer.update_settings()
@dbus.service.method(EAF_DBUS_NAME, in_signature="s", out_signature="")
def store_emacs_var(self, var_dict_string):
for var_pair in var_dict_string.split(":"):
(var_name, var_value) = var_pair.split(",")
for buffer in list(self.buffer_dict.values()):
buffer.emacs_var_dict[var_name] = var_value
buffer.update_settings()
@dbus.service.signal(EAF_DBUS_NAME)
def focus_emacs_buffer(self, message):

Loading…
Cancel
Save