aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/frameset.el
diff options
context:
space:
mode:
authorJuanma Barranquero2013-08-09 02:30:24 +0200
committerJuanma Barranquero2013-08-09 02:30:24 +0200
commit77187e6f36e423fbf291ce9ea824d4b8da66108d (patch)
tree2960640f322e8f876ff5d569bc6dd3663e1dbb3b /lisp/frameset.el
parent9d3aa82cf961afda732fc369a42321f4bfbc0021 (diff)
downloademacs-77187e6f36e423fbf291ce9ea824d4b8da66108d.tar.gz
emacs-77187e6f36e423fbf291ce9ea824d4b8da66108d.zip
Move frameset-to-register stuff from register.el to frameset.el.
lisp/register.el (frameset-frame-id, frameset-frame-with-id, frameset-p) (frameset-restore, frameset-save, frameset-session-filter-alist): Remove declarations. (register-alist): Doc fix. (frameset-to-register): Move to frameset.el. (jump-to-register, describe-register-1): Remove frameset-specific code. lisp/frameset.el (frameset-p): Add autoload cookie. (frameset--jump-to-register): New function, based on code moved from register.el. (frameset-to-register): Move from register.el. Adapt to `registerv'.
Diffstat (limited to 'lisp/frameset.el')
-rw-r--r--lisp/frameset.el38
1 files changed, 38 insertions, 0 deletions
diff --git a/lisp/frameset.el b/lisp/frameset.el
index b1ad9f7702a..132cbcd4856 100644
--- a/lisp/frameset.el
+++ b/lisp/frameset.el
@@ -129,6 +129,9 @@ root window of the frame.\n
129IMPORTANT: Modifying this slot may cause frameset functions to fail, 129IMPORTANT: Modifying this slot may cause frameset functions to fail,
130unless the type constraints defined above are respected.\n\n(fn FRAMESET)") 130unless the type constraints defined above are respected.\n\n(fn FRAMESET)")
131 131
132;;;###autoload (autoload 'frameset-p "frameset"
133;;;###autoload "Return non-nil if OBJECT is a frameset, nil otherwise." nil)
134
132(defun frameset-copy (frameset) 135(defun frameset-copy (frameset)
133 "Return a deep copy of FRAMESET. 136 "Return a deep copy of FRAMESET.
134FRAMESET is copied with `copy-tree'." 137FRAMESET is copied with `copy-tree'."
@@ -1184,6 +1187,41 @@ All keyword parameters default to nil."
1184 (unless (or (daemonp) (visible-frame-list)) 1187 (unless (or (daemonp) (visible-frame-list))
1185 (make-frame-visible (car (frame-list)))))) 1188 (make-frame-visible (car (frame-list))))))
1186 1189
1190
1191;; Register support
1192
1193(defun frameset--jump-to-register (data)
1194 "Restore frameset from DATA stored in register.
1195Called from `jump-to-register'. Internal use only."
1196 (let* ((delete (and current-prefix-arg t))
1197 (iconify-list (if delete nil (frame-list))))
1198 (frameset-restore (aref data 0)
1199 :filters frameset-session-filter-alist
1200 :reuse-frames (if delete t :keep))
1201 (mapc #'iconify-frame iconify-list)
1202 (let ((frame (frameset-frame-with-id (aref data 1))))
1203 (when frame
1204 (select-frame-set-input-focus frame)
1205 (goto-char (aref data 2))))))
1206
1207;;;###autoload
1208(defun frameset-to-register (register &optional _arg)
1209 "Store the current frameset in register REGISTER.
1210Use \\[jump-to-register] to restore the frameset.
1211Argument is a character, naming the register."
1212 (interactive "cFrameset to register: \nP")
1213 (set-register register
1214 (registerv-make
1215 (vector (frameset-save nil
1216 :app 'register
1217 :filters frameset-session-filter-alist)
1218 ;; frameset-save does not include the value of point
1219 ;; in the current buffer, so record that separately.
1220 (frameset-frame-id nil)
1221 (point-marker))
1222 :print-func (lambda (_data) (princ "a frameset."))
1223 :jump-func #'frameset--jump-to-register)))
1224
1187(provide 'frameset) 1225(provide 'frameset)
1188 1226
1189;;; frameset.el ends here 1227;;; frameset.el ends here