Function: ghostel--focus-change

ghostel--focus-change is a natively compiled function defined in ghostel.el.

Signature

(ghostel--focus-change &rest _)

Documentation

Send terminal focus events for every live ghostel buffer.

Called from after-focus-change-function, window-selection-change-functions, window-buffer-change-functions. Sends a focus event only when the buffer's logical focus state transitions. Further gates on terminal mode 1004.

Source Code

;; Defined in /nix/store/1252krff0gb2kisjcpp45m50cpdskfrl-emacs-packages-deps/share/emacs/site-lisp/ghostel.el
(defun ghostel--focus-change (&rest _)
  "Send terminal focus events for every live ghostel buffer.
Called from `after-focus-change-function', `window-selection-change-functions',
`window-buffer-change-functions'.  Sends a focus event only when the buffer's
logical focus state transitions.  Further gates on terminal mode 1004."
  (dolist (buf (buffer-list))
    (when (buffer-live-p buf)
      (with-current-buffer buf
        (when (derived-mode-p 'ghostel-mode)
          (let ((focused (and (ghostel--buffer-focused-p buf) t)))
            (when (and (not (eq focused ghostel--focus-state))
                       (ghostel--focus-event ghostel--term focused))
              (setq ghostel--focus-state focused))))))))