diff --git a/eaf.el b/eaf.el index 56b1237..1cd7a41 100644 --- a/eaf.el +++ b/eaf.el @@ -97,6 +97,12 @@ (defvar-local eaf--buffer-id nil "Internal id used by eaf app.") +(defvar-local eaf--buffer-url nil + "The buffer url.") + +(defvar-local eaf--buffer-app-name nil + "The buffer app name.") + (define-derived-mode eaf-mode text-mode "EAF" "Major mode for Emacs Application Framework." ;; Kill all local variables first. @@ -543,16 +549,16 @@ Please ONLY use `eaf-bind-key' to edit EAF keybindings!" (key-desc (key-description key))) ;; Uncomment for debug. - ;; (message (format "!!!!! %s %s %s %s %s" key key-command key-desc buffer-app-name)) + ;; (message (format "!!!!! %s %s %s %s %s" key key-command key-desc eaf--buffer-app-name)) (cond ;; Fix #51 , don't handle F11 to make emacs toggle frame fullscreen status successfully. ((equal key-desc "") t) ;; Call function on the Python side if matched key in the keybinding. - ((eaf-identify-key-in-app key-command buffer-app-name) + ((eaf-identify-key-in-app key-command eaf--buffer-app-name) (eaf-call "execute_function" eaf--buffer-id - (cdr (assoc key-desc (eaf-get-app-bindings buffer-app-name))))) + (cdr (assoc key-desc (eaf-get-app-bindings eaf--buffer-app-name))))) ;; Send key to Python side if key-command is single character key. ((or (equal key-command "self-insert-command") (equal key-command "completion-select-if-within-overlay") @@ -636,8 +642,8 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)" (with-current-buffer eaf-buffer (eaf-mode) (set (make-local-variable 'eaf--buffer-id) new-window-buffer-id) - (set (make-local-variable 'buffer-url) "") - (set (make-local-variable 'buffer-app-name) "browser")) + (set (make-local-variable 'eaf--buffer-url) "") + (set (make-local-variable 'eaf--buffer-app-name) "browser")) (switch-to-buffer eaf-buffer))) (dbus-register-signal @@ -744,8 +750,8 @@ Use it as (eaf-bind-key var key eaf-app-keybinding)" (progn ;; Switch to new buffer if buffer create successful. (switch-to-buffer buffer) - (set (make-local-variable 'buffer-url) url) - (set (make-local-variable 'buffer-app-name) app-name) + (set (make-local-variable 'eaf--buffer-url) url) + (set (make-local-variable 'eaf--buffer-app-name) app-name) ;; Focus to file window if is previewer application. (when (or (string= app-name "markdown-previewer") (string= app-name "org-previewer")) @@ -841,8 +847,8 @@ When called interactively, URL accepts a file that can be opened by EAF." (dolist (buffer (buffer-list)) (set-buffer buffer) (when (equal major-mode 'eaf-mode) - (when (and (string= buffer-url url) - (string= buffer-app-name app-name)) + (when (and (string= eaf--buffer-url url) + (string= eaf--buffer-app-name app-name)) (setq exists-eaf-buffer buffer) (throw 'found-match-buffer t))))) ;; Switch to exists buffer,