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 | |
| 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'.
| -rw-r--r-- | lisp/ChangeLog | 14 | ||||
| -rw-r--r-- | lisp/frameset.el | 38 | ||||
| -rw-r--r-- | lisp/register.el | 39 |
3 files changed, 53 insertions, 38 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f240aa445d0..382c5804330 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2013-08-09 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * frameset.el (frameset-p): Add autoload cookie. | ||
| 4 | (frameset--jump-to-register): New function, based on code moved from | ||
| 5 | register.el. | ||
| 6 | (frameset-to-register): Move from register.el. Adapt to `registerv'. | ||
| 7 | |||
| 8 | * register.el (frameset-frame-id, frameset-frame-with-id, frameset-p) | ||
| 9 | (frameset-restore, frameset-save, frameset-session-filter-alist): | ||
| 10 | Remove declarations. | ||
| 11 | (register-alist): Doc fix. | ||
| 12 | (frameset-to-register): Move to frameset.el. | ||
| 13 | (jump-to-register, describe-register-1): Remove frameset-specific code. | ||
| 14 | |||
| 1 | 2013-08-08 Juanma Barranquero <lekktu@gmail.com> | 15 | 2013-08-08 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 16 | ||
| 3 | * allout-widgets.el (allout-widgets-pre-command-business) | 17 | * allout-widgets.el (allout-widgets-pre-command-business) |
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 |
diff --git a/lisp/register.el b/lisp/register.el index 84305f71d03..78f18dbc7c1 100644 --- a/lisp/register.el +++ b/lisp/register.el | |||
| @@ -31,12 +31,6 @@ | |||
| 31 | 31 | ||
| 32 | (eval-when-compile (require 'cl-lib)) | 32 | (eval-when-compile (require 'cl-lib)) |
| 33 | 33 | ||
| 34 | (declare-function frameset-frame-id "frameset" (frame)) | ||
| 35 | (declare-function frameset-frame-with-id "frameset" (id &optional frame-list)) | ||
| 36 | (declare-function frameset-p "frameset" (frameset)) | ||
| 37 | (declare-function frameset-restore "frameset" (frameset &rest keys) t) | ||
| 38 | (declare-function frameset-save "frameset" (frame-list &rest keys) t) | ||
| 39 | |||
| 40 | ;;; Code: | 34 | ;;; Code: |
| 41 | 35 | ||
| 42 | (cl-defstruct | 36 | (cl-defstruct |
| @@ -77,9 +71,7 @@ A list of the form (file-query FILE-NAME POSITION) represents | |||
| 77 | A list of the form (WINDOW-CONFIGURATION POSITION) | 71 | A list of the form (WINDOW-CONFIGURATION POSITION) |
| 78 | represents a saved window configuration plus a saved value of point. | 72 | represents a saved window configuration plus a saved value of point. |
| 79 | A list of the form (FRAME-CONFIGURATION POSITION) | 73 | A list of the form (FRAME-CONFIGURATION POSITION) |
| 80 | represents a saved frame configuration plus a saved value of point. | 74 | represents a saved frame configuration plus a saved value of point.") |
| 81 | A list of the form (FRAMESET FRAME-ID POSITION) | ||
| 82 | represents a saved frameset plus the value of point in frame FRAME-ID.") | ||
| 83 | 75 | ||
| 84 | (defgroup register nil | 76 | (defgroup register nil |
| 85 | "Register commands." | 77 | "Register commands." |
| @@ -140,22 +132,6 @@ Argument is a character, naming the register." | |||
| 140 | ;; of point in the current buffer, so record that separately. | 132 | ;; of point in the current buffer, so record that separately. |
| 141 | (set-register register (list (current-frame-configuration) (point-marker)))) | 133 | (set-register register (list (current-frame-configuration) (point-marker)))) |
| 142 | 134 | ||
| 143 | (defvar frameset-session-filter-alist) | ||
| 144 | |||
| 145 | (defun frameset-to-register (register &optional _arg) | ||
| 146 | "Store the current frameset in register REGISTER. | ||
| 147 | Use \\[jump-to-register] to restore the frameset. | ||
| 148 | Argument is a character, naming the register." | ||
| 149 | (interactive "cFrameset to register: \nP") | ||
| 150 | (set-register register | ||
| 151 | (list (frameset-save nil | ||
| 152 | :app 'register | ||
| 153 | :filters frameset-session-filter-alist) | ||
| 154 | ;; frameset-save does not include the value of point | ||
| 155 | ;; in the current buffer, so record that separately. | ||
| 156 | (frameset-frame-id nil) | ||
| 157 | (point-marker)))) | ||
| 158 | |||
| 159 | (defalias 'register-to-point 'jump-to-register) | 135 | (defalias 'register-to-point 'jump-to-register) |
| 160 | (defun jump-to-register (register &optional delete) | 136 | (defun jump-to-register (register &optional delete) |
| 161 | "Move point to location stored in a register. | 137 | "Move point to location stored in a register. |
| @@ -181,16 +157,6 @@ delete any existing frames that the frameset doesn't mention. | |||
| 181 | ((and (consp val) (window-configuration-p (car val))) | 157 | ((and (consp val) (window-configuration-p (car val))) |
| 182 | (set-window-configuration (car val)) | 158 | (set-window-configuration (car val)) |
| 183 | (goto-char (cadr val))) | 159 | (goto-char (cadr val))) |
| 184 | ((and (consp val) (frameset-p (car val))) | ||
| 185 | (let ((iconify-list (if delete nil (frame-list))) | ||
| 186 | frame) | ||
| 187 | (frameset-restore (car val) | ||
| 188 | :filters frameset-session-filter-alist | ||
| 189 | :reuse-frames (if delete t :keep)) | ||
| 190 | (mapc #'iconify-frame iconify-list) | ||
| 191 | (when (setq frame (frameset-frame-with-id (cadr val))) | ||
| 192 | (select-frame-set-input-focus frame) | ||
| 193 | (goto-char (nth 2 val))))) | ||
| 194 | ((markerp val) | 160 | ((markerp val) |
| 195 | (or (marker-buffer val) | 161 | (or (marker-buffer val) |
| 196 | (error "That register's buffer no longer exists")) | 162 | (error "That register's buffer no longer exists")) |
| @@ -303,9 +269,6 @@ The Lisp value REGISTER is a character." | |||
| 303 | ((and (consp val) (frame-configuration-p (car val))) | 269 | ((and (consp val) (frame-configuration-p (car val))) |
| 304 | (princ "a frame configuration.")) | 270 | (princ "a frame configuration.")) |
| 305 | 271 | ||
| 306 | ((and (consp val) (frameset-p (car val))) | ||
| 307 | (princ "a frameset.")) | ||
| 308 | |||
| 309 | ((and (consp val) (eq (car val) 'file)) | 272 | ((and (consp val) (eq (car val) 'file)) |
| 310 | (princ "the file ") | 273 | (princ "the file ") |
| 311 | (prin1 (cdr val)) | 274 | (prin1 (cdr val)) |