diff options
| author | Juanma Barranquero | 2013-08-09 02:30:24 +0200 |
|---|---|---|
| committer | Juanma Barranquero | 2013-08-09 02:30:24 +0200 |
| commit | 77187e6f36e423fbf291ce9ea824d4b8da66108d (patch) | |
| tree | 2960640f322e8f876ff5d569bc6dd3663e1dbb3b /lisp/frameset.el | |
| parent | 9d3aa82cf961afda732fc369a42321f4bfbc0021 (diff) | |
| download | emacs-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.el | 38 |
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 | |||
| 129 | IMPORTANT: Modifying this slot may cause frameset functions to fail, | 129 | IMPORTANT: Modifying this slot may cause frameset functions to fail, |
| 130 | unless the type constraints defined above are respected.\n\n(fn FRAMESET)") | 130 | unless 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. |
| 134 | FRAMESET is copied with `copy-tree'." | 137 | FRAMESET 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. | ||
| 1195 | Called 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. | ||
| 1210 | Use \\[jump-to-register] to restore the frameset. | ||
| 1211 | Argument 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 |