aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuanma Barranquero2013-08-09 02:30:24 +0200
committerJuanma Barranquero2013-08-09 02:30:24 +0200
commit77187e6f36e423fbf291ce9ea824d4b8da66108d (patch)
tree2960640f322e8f876ff5d569bc6dd3663e1dbb3b
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'.
-rw-r--r--lisp/ChangeLog14
-rw-r--r--lisp/frameset.el38
-rw-r--r--lisp/register.el39
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 @@
12013-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
12013-08-08 Juanma Barranquero <lekktu@gmail.com> 152013-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
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
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
77A list of the form (WINDOW-CONFIGURATION POSITION) 71A 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.
79A list of the form (FRAME-CONFIGURATION POSITION) 73A 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.")
81A 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.
147Use \\[jump-to-register] to restore the frameset.
148Argument 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))