summaryrefslogtreecommitdiffhomepage
path: root/lib/eos
diff options
context:
space:
mode:
Diffstat (limited to 'lib/eos')
-rw-r--r--lib/eos/jao-tracking.el37
1 files changed, 33 insertions, 4 deletions
diff --git a/lib/eos/jao-tracking.el b/lib/eos/jao-tracking.el
index 8436733..386cc12 100644
--- a/lib/eos/jao-tracking.el
+++ b/lib/eos/jao-tracking.el
@@ -23,6 +23,7 @@
(require 'tracking)
(require 'shorten)
(require 'jao-minibuffer)
+(require 'jao-afio)
;; shorten
@@ -117,10 +118,38 @@
(setq jao-tracking-string (jao-tracking-build-str new-val))
(jao-minibuffer-refresh))
-(jao-minibuffer-add-variable 'jao-tracking-string -10)
-(add-variable-watcher 'tracking-mode-line-buffers #'jao-tracking-echo)
-;; since we're using the minibuffer, forget the mode line
-(advice-add #'tracking-mode :override (lambda (&optional _) (interactive)))
+(defvar jao-tracking-use-scratch nil)
+(defvar jao-tracking--start-frame nil)
+
+(defun jao-tracking--remove-visible-buffers ()
+ (unless (and jao-afio-use-frames jao-tracking-use-scratch)
+ (tracking-remove-visible-buffers)))
+
+;;;###autoload
+(defun jao-tracking-next-buffer ()
+ (interactive)
+ (if jao-tracking-use-scratch
+ (let ((n (jao-afio-frame-no)))
+ (unless (eq 0 n) (setq jao-tracking--start-frame n))
+ (cond (tracking-buffers
+ (let ((b (car tracking-buffers)))
+ (if (eq 0 n) (tracking-next-buffer)
+ (jao-afio--goto-scratch)
+ (when b (pop-to-buffer b))
+ (tracking-remove-visible-buffers))))
+ (jao-tracking--start-frame
+ (jao-afio-goto-nth jao-tracking--start-frame)
+ (setq jao-tracking--start-frame nil))))
+ (tracking-next-buffer))
+ (jao-tracking-update-minibuffer))
+
+;;;###autoload
+(defun jao-tracking-setup ()
+ (jao-minibuffer-add-variable 'jao-tracking-string -10)
+ (add-variable-watcher 'tracking-mode-line-buffers #'jao-tracking-echo)
+ ;; since we're using the minibuffer, forget the mode line
+ (advice-add #'tracking-mode :override (lambda (&optional _) (interactive)))
+ (add-hook 'jao-afio-switch-hook #'jao-tracking--remove-visible-buffers))
(provide 'jao-tracking)
;;; jao-minibuffer-tracking.el ends here