Commit 0d19068c authored by Andy Stewart's avatar Andy Stewart
Browse files

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

parent 59568277
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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"
+7 −5
Original line number Diff line number Diff line
@@ -252,8 +252,10 @@ 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):
    @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()