[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113748: * lisp/bindings.el (ctl-x-r-map): Bind ?f t
From: |
Juanma Barranquero |
Subject: |
[Emacs-diffs] trunk r113748: * lisp/bindings.el (ctl-x-r-map): Bind ?f to frameset-to-register. |
Date: |
Thu, 08 Aug 2013 00:44:33 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113748
revision-id: address@hidden
parent: address@hidden
committer: Juanma Barranquero <address@hidden>
branch nick: trunk
timestamp: Thu 2013-08-08 02:44:22 +0200
message:
* lisp/bindings.el (ctl-x-r-map): Bind ?f to frameset-to-register.
* lisp/register.el: Add support for framesets.
(frameset-frame-id, frameset-frame-with-id)
(frameset-p, frameset-restore, frameset-save): Declare.
(register-alist): Document framesets.
(frameset-session-filter-alist): Declare.
(frameset-to-register): New function.
(jump-to-register): Implement jumping to framesets. Doc fix.
(describe-register-1): Describe framesets.
modified:
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/bindings.el
bindings.el-20091113204419-o5vbwnq5f7feedwu-1013
lisp/register.el register.el-20091113204419-o5vbwnq5f7feedwu-104
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2013-08-07 22:54:08 +0000
+++ b/lisp/ChangeLog 2013-08-08 00:44:22 +0000
@@ -1,3 +1,15 @@
+2013-08-08 Juanma Barranquero <address@hidden>
+
+ * register.el (frameset-frame-id, frameset-frame-with-id)
+ (frameset-p, frameset-restore, frameset-save): Declare.
+ (register-alist): Document framesets.
+ (frameset-session-filter-alist): Declare.
+ (frameset-to-register): New function.
+ (jump-to-register): Implement jumping to framesets. Doc fix.
+ (describe-register-1): Describe framesets.
+
+ * bindings.el (ctl-x-r-map): Bind ?f to frameset-to-register.
+
2013-08-07 Juanma Barranquero <address@hidden>
* desktop.el (desktop-save-frameset): Use new frameset-save args.
=== modified file 'lisp/bindings.el'
--- a/lisp/bindings.el 2013-06-30 14:49:33 +0000
+++ b/lisp/bindings.el 2013-08-08 00:44:22 +0000
@@ -1220,7 +1220,7 @@
(define-key map "n" 'number-to-register)
(define-key map "+" 'increment-register)
(define-key map "w" 'window-configuration-to-register)
- (define-key map "f" 'frame-configuration-to-register)
+ (define-key map "f" 'frameset-to-register)
map)
"Keymap for subcommands of C-x r.")
(define-key ctl-x-map "r" ctl-x-r-map)
=== modified file 'lisp/register.el'
--- a/lisp/register.el 2013-03-26 02:49:05 +0000
+++ b/lisp/register.el 2013-08-08 00:44:22 +0000
@@ -31,6 +31,12 @@
(eval-when-compile (require 'cl-lib))
+(declare-function frameset-frame-id "frameset" (frame))
+(declare-function frameset-frame-with-id "frameset" (id &optional frame-list))
+(declare-function frameset-p "frameset" (frameset))
+(declare-function frameset-restore "frameset" (frameset &rest keys) t)
+(declare-function frameset-save "frameset" (frame-list &rest keys) t)
+
;;; Code:
(cl-defstruct
@@ -71,7 +77,9 @@
A list of the form (WINDOW-CONFIGURATION POSITION)
represents a saved window configuration plus a saved value of point.
A list of the form (FRAME-CONFIGURATION POSITION)
- represents a saved frame configuration plus a saved value of point.")
+ represents a saved frame configuration plus a saved value of point.
+A list of the form (FRAMESET FRAME-ID POSITION)
+ represents a saved frameset plus the value of point in frame FRAME-ID.")
(defgroup register nil
"Register commands."
@@ -132,16 +140,32 @@
;; of point in the current buffer, so record that separately.
(set-register register (list (current-frame-configuration) (point-marker))))
+(defvar frameset-session-filter-alist)
+
+(defun frameset-to-register (register &optional _arg)
+ "Store the current frameset in register REGISTER.
+Use \\[jump-to-register] to restore the frameset.
+Argument is a character, naming the register."
+ (interactive "cFrameset to register: \nP")
+ (set-register register
+ (list (frameset-save nil
+ :app 'register
+ :filters frameset-session-filter-alist)
+ ;; frameset-save does not include the value of point
+ ;; in the current buffer, so record that separately.
+ (frameset-frame-id nil)
+ (point-marker))))
+
(defalias 'register-to-point 'jump-to-register)
(defun jump-to-register (register &optional delete)
"Move point to location stored in a register.
If the register contains a file name, find that file.
\(To put a file name in a register, you must use `set-register'.)
-If the register contains a window configuration (one frame) or a frame
-configuration (all frames), restore that frame or all frames accordingly.
+If the register contains a window configuration (one frame) or a frameset
+\(all frames), restore that frame or all frames accordingly.
First argument is a character, naming the register.
Optional second arg non-nil (interactively, prefix argument) says to
-delete any existing frames that the frame configuration doesn't mention.
+delete any existing frames that the frameset doesn't mention.
\(Otherwise, these frames are iconified.)"
(interactive "cJump to register: \nP")
(let ((val (get-register register)))
@@ -157,6 +181,16 @@
((and (consp val) (window-configuration-p (car val)))
(set-window-configuration (car val))
(goto-char (cadr val)))
+ ((and (consp val) (frameset-p (car val)))
+ (let ((iconify-list (if delete nil (frame-list)))
+ frame)
+ (frameset-restore (car val)
+ :filters frameset-session-filter-alist
+ :reuse-frames (if delete t :keep))
+ (mapc #'iconify-frame iconify-list)
+ (when (setq frame (frameset-frame-with-id (cadr val)))
+ (select-frame-set-input-focus frame)
+ (goto-char (nth 2 val)))))
((markerp val)
(or (marker-buffer val)
(error "That register's buffer no longer exists"))
@@ -269,6 +303,9 @@
((and (consp val) (frame-configuration-p (car val)))
(princ "a frame configuration."))
+ ((and (consp val) (frameset-p (car val)))
+ (princ "a frameset."))
+
((and (consp val) (eq (car val) 'file))
(princ "the file ")
(prin1 (cdr val))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113748: * lisp/bindings.el (ctl-x-r-map): Bind ?f to frameset-to-register.,
Juanma Barranquero <=