Commit graph

38 commits

Author SHA1 Message Date
Juanma Barranquero
d27a1a7b39 lisp/frameset.el: Optimize check for visible frame.
(frameset-restore): When checking for a visible frame,
use the action map instead of calling visible-frame-list.
2014-03-12 19:36:26 +01:00
Juanma Barranquero
13c00cf02f lisp/frameset.el (frameset--jump-to-register): Add autoload. 2014-03-12 03:21:09 +01:00
Juanma Barranquero
baf8d0ac7d lisp/frameset.el: Let-bind frameset--target-display.
* frameset.el (frameset--target-display): Remove definition; declare.
(frameset-save, frameset-restore): Let-bind frameset--target-display.
2014-03-11 02:44:51 +01:00
Juanma Barranquero
4538c058d0 lisp/frameset.el: Separate frame reusing from cleaning up.
* lisp/desktop.el (desktop-restore-forces-onscreen)
  (desktop-restore-reuses-frames): Use non-keyword values.
  (desktop-restore-frameset): Use CLEANUP-FRAMES arg of frameset-restore.

* lisp/frameset.el: Separate options for reusing frames and cleaning up.
  (frameset--reuse-list): Remove definition; declare.
  (frameset--action-map): Declare.
  (frameset--find-frame-if): Doc fix.
  (frameset--restore-frame): Cache frame action.
  (frameset-restore): New keyword arg CLEANUP-FRAMES, allows to select
  how to clean up the frame list after restoring.  Remove cleaning
  options from REUSE-FRAMES.  Change all keyword values to symbols.
  (frameset--jump-to-register): Simplify by using CLEANUP-FRAMES.
2014-03-11 01:46:07 +01:00
Juanma Barranquero
e7db54476d lisp/frameset.el: Avoid computing frame-list unnecessarily.
(frameset-restore): When no frame is visible, do not generate
a list of frames, just make visible the selected one.
2014-03-08 23:26:20 +01:00
Juanma Barranquero
9284000e10 lisp/frameset.el (frameset--initial-params): Filter out null entries. 2014-03-05 17:22:47 +01:00
Juanma Barranquero
94e5e202d9 lisp/frameset.el (frameset-restore): Remove duplicate ids only when needed. 2014-02-19 22:04:06 +01:00
Juanma Barranquero
f097a3d25f lisp/frameset.el (frameset--reuse-frame): Remove workaround for bug#16793. 2014-02-19 12:01:35 +01:00
Juanma Barranquero
7108e1c040 lisp/frameset.el: Workaround bug#16793.
lisp/frameset.el (frameset--restore-frame): When a frame is being reused
and its root window is not alive, delete all the frame's windows before
restoring the window state.
2014-02-18 18:33:37 +01:00
Juanma Barranquero
c64633402e lisp/frameset.el: Fix bug#16748.
* lisp/frameset.el (frameset-cfg-id): New function.
(frameset--reuse-frame, frameset-restore): Use it.
(frameset--jump-to-register): Try harder to reuse frames.
2014-02-17 17:01:43 +01:00
Juanma Barranquero
285f1858c3 frameset.el (frameset--jump-to-register): Check that buffer is live (bug#16749). 2014-02-15 05:16:46 +01:00
Juanma Barranquero
26c5ecd9de lisp/frameset.el (frameset--jump-to-register): Fix bug#16696.
Select the required window and buffer before restoring position.
2014-02-11 21:48:23 +01:00
Glenn Morris
7bcbca405f Tidy up some -to-register function argument specs
* lisp/register.el (window-configuration-to-register)
(frame-configuration-to-register): Unadvertise unused argument.

* lisp/frameset.el (frameset-to-register): Remove unused argument.
2014-02-02 23:56:44 -08:00
Glenn Morris
6a6b8e405e Be more consistent in using register-read-with-preview to read registers
* frameset.el (frameset-to-register):
* kmacro.el (kmacro-to-register):
* register.el (increment-register):
* calc/calc-yank.el (calc-copy-to-register, calc-insert-register)
(calc-append-to-register, calc-prepend-to-register):
* play/gametree.el (gametree-layout-to-register)
(gametree-apply-register-layout):
* textmodes/picture.el (picture-clear-rectangle-to-register)
(picture-yank-rectangle-from-register):
* vc/emerge.el (emerge-combine-versions-register):
Use register-read-with-preview to read registers.

* cedet/semantic/senator.el (senator-copy-tag-to-register):
Use register-read-with-preview, if available.

* calculator.el, emulation/viper-cmd.el: Comments.
2014-02-02 16:40:49 -08:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Paul Eggert
526e5233cc Spelling fixes. 2013-08-15 22:15:51 -07:00
Juanma Barranquero
14d1e4634c lisp/frameset.el: Allow orphaned minibufferless frames.
(frameset-filter-minibuffer): Deal with the case that the minibuffer
parameter was already set in FILTERED.  Doc fix.
(frameset--record-minibuffer-relationships): Allow saving a
minibufferless frame without its corresponding minibuffer frame.
(frameset--reuse-frame): Accept a match from an orphaned minibufferless
frame, if the frame id matches.
(frameset--minibufferless-last-p): Sort non-orphaned minibufferless
frames before orphaned ones.
(frameset-restore): Warn about orphaned windows, instead of error out.
2013-08-14 15:41:02 +02:00
Juanma Barranquero
62f33baed9 lisp/frameset.el: Use gv-setter declaration.
(frameset--prop-setter): New function.
(frameset-prop): Add gv-setter declaration.
2013-08-14 15:30:13 +02:00
Stefan Monnier
1f585e6529 * lisp/frameset.el (frameset--make): Rename constructor from make-frameset.
(frameset-p, frameset-valid-p): Don't autoload.
(frameset-valid-p): Use normal accessors.
2013-08-13 09:47:54 -04:00
Juanma Barranquero
7ec326db1d lisp/frameset.el (frameset-valid-p): Fix check; STATES can indeed be nil. 2013-08-11 05:09:21 +02:00
Juanma Barranquero
77187e6f36 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'.
2013-08-09 02:30:24 +02:00
Juanma Barranquero
c03c02eea4 lisp/frameset.el (frameset-save): Check validity of the resulting frameset.
(frameset-valid-p): Doc fix.
2013-08-08 17:59:14 +02:00
Juanma Barranquero
f9dbf1cbb8 lisp/frameset.el: Doc fixes. 2013-08-08 12:44:07 +02:00
Juanma Barranquero
76c5e5ab36 lisp/frameset.el: Revert to built-in frameset-p; document slot accessors.
(frameset): Do not disable creation of the default frameset-p predicate.
Doc fix.
(frameset-valid-p): New function, copied from the old predicate-p.
Add additional checks.
(frameset-restore): Check with frameset-valid-p.
(frameset-p, frameset-version, frameset-timestamp, frameset-app)
(frameset-name, frameset-description, frameset-properties)
(frameset-states): Add docstring.
2013-08-08 11:54:29 +02:00
Juanma Barranquero
bd0c3c0b12 lisp/frameset.el (frameset-p, frameset-prop): Doc fixes. 2013-08-08 05:54:41 +02:00
Juanma Barranquero
3677ffeb28 lisp/frameset.el (frameset-restore): Doc fix. 2013-08-08 03:19:11 +02:00
Juanma Barranquero
a912c0163d lisp/frameset.el: Convert `frameset' to vector and add new slots.
(frameset): Use type vector, not list (incompatible change).
Do not declare a new constructor, use the default one.
Upgrade suggested properties `app', `name' and `desc' to slots `app',
`name' and `description', respectively, and add read-only slot `timestamp'.
Doc fixes.
(frameset-copy, frameset-persistent-filter-alist)
(frameset-filter-alist, frameset-switch-to-gui-p)
(frameset-switch-to-tty-p, frameset-filter-tty-to-GUI)
(frameset-filter-sanitize-color, frameset-filter-minibuffer)
(frameset-filter-iconified, frameset-keep-original-display-p):
Doc fixes.
(frameset-filter-shelve-param, frameset-filter-unshelve-param):
Rename from frameset-filter-(save|restore)-param.  All callers changed.
Doc fix.
(frameset-p): Adapt to change to vector and be more thorough.
Change arg name to OBJECT.  Doc fix.
(frameset-prop): Rename arg PROP to PROPERTY.  Doc fix.
(frameset-session-filter-alist): Rename from frameset-live-filter-alist.
All callers changed.
(frameset-frame-with-id): Rename from frameset-locate-frame-id.
All callers changed.
(frameset--record-minibuffer-relationships): Rename from
frameset--process-minibuffer-frames.  All callers changed.
(frameset-save): Add new keyword arguments APP, NAME and DESCRIPTION.
Use new default constructor (again).  Doc fix.
(frameset--find-frame-if): Rename from `frameset--find-frame.
All callers changed.
(frameset--reuse-frame): Rename arg FRAME-CFG to PARAMETERS.
(frameset--initial-params): Rename arg FRAME-CFG to PARAMETERS.
Doc fix.
(frameset--restore-frame): Rename args FRAME-CFG and WINDOW-CFG to
PARAMETERS and WINDOW-STATE, respectively.
(frameset-restore): Add new keyword argument PREDICATE.
Reset frameset--target-display to nil.  Doc fix.

lisp/desktop.el (desktop-save-frameset): Use new frameset-save args.
Use lexical-binding.
2013-08-08 00:54:08 +02:00
Juanma Barranquero
024b38fc4d lisp/frameset.el: Doc fixes.
(frameset, frameset-filter-alist, frameset-filter-params, frameset-save)
(frameset--reuse-frame, frameset--minibufferless-last-p, frameset-restore):
Doc fixes.
(frameset-compute-pos): Rename from frameset--compute-pos, and add docstring.
(frameset-move-onscreen): Use frameset-compute-pos.
Most changes suggested by Drew Adams <drew.adams@oracle.com>.
2013-08-06 14:18:43 +02:00
Juanma Barranquero
307764cc3a lisp/frameset.el: Various fixes.
(frameset-p): Don't check non-nullness of the `properties'
slot , which can indeed be nil.
(frameset-live-filter-alist, frameset-persistent-filter-alist):
Move entry for `left' from persistent to live filter alist.
(frameset-filter-alist, frameset--minibufferless-last-p, frameset-save):
Doc fixes.
(frameset-filter-params): When restoring a frame, copy items added to
`filtered', to avoid unwittingly modifying the original parameters.
(frameset-move-onscreen): Rename from frameset--move-onscreen.  Doc fix.
(frameset--restore-frame): Fix reference to frameset-move-onscreen.
2013-08-06 03:26:29 +02:00
Juanma Barranquero
38276e01db lisp/frameset.el: New frame-id functions.
(frameset--set-id): Doc fix.
(frameset-frame-id, frameset-frame-id-equal-p)
(frameset-locate-frame-id): New functions.
(frameset--process-minibuffer-frames, frameset--reuse-frame)
(frameset-restore): Use them.
2013-08-05 15:06:29 +02:00
Juanma Barranquero
063233c357 * lisp/frameset.el: Miscellaneous cleanups.
(frameset): Add docstring.  Move :version property to its
  own `version' slot.
  (frameset-copy): Rename from copy-frameset.
  (frameset-p): Check more thoroughly.
  (frameset-prop): Do not check for :version, which is no longer a prop.
  (frameset-live-filter-alist, frameset-persistent-filter-alist):
  Use new :never value instead of t.
  (frameset-filter-alist): Expand and clarify docstring.
  (frameset-filter-tty-to-GUI, frameset-filter-sanitize-color)
  (frameset-filter-minibuffer, frameset-filter-save-param)
  (frameset-filter-restore-param, frameset-filter-iconified):
  Add pointer to docstring of frameset-filter-alist.
  (frameset-filter-params): Rename filter values to be more meaningful:
  :never instead of t, and reverse the meanings of :save and :restore.
  (frameset--process-minibuffer-frames): Clarify error message.
  (frameset-save): Avoid unnecessary and confusing call to framep.
  Use new BOA constructor for framesets.
  (frameset--reuse-list): Doc fix.
  (frameset--restore-frame): Rename from frameset--get-frame.  Doc fix.
  (frameset--minibufferless-last-p): Rename from frameset--sort-states.
  (frameset-minibufferless-first-p): Doc fix.
  Rename from frameset-sort-frames-for-deletion.
  (frameset-restore): Doc fixes.  Use new function names.
  Most changes suggested by Drew Adams <drew.adams@oracle.com>.

* lisp/desktop.el (desktop-clear): Use new name of sort predicate.
2013-08-05 06:45:17 +02:00
Juanma Barranquero
d5671a82b8 * lisp/frameset.el: Add new predicate values for frameset-restore args.
(frameset-live-filter-alist, frameset-persistent-filter-alist):
  New variables.
  (frameset-filter-alist): Use them.  Add autoload cookie.
  (frameset-filter-tty-to-GUI): Move from desktop.el and rename.
  (frameset--set-id, frameset--reuse-frame): Rename `frame-id' to
  `frameset--id' (it's supposed to be internal to frameset.el).
  (frameset--process-minibuffer-frames): Ditto.  Doc fix.
  (frameset--initial-params): New function.
  (frameset--get-frame): Use it.  Doc fix.
  (frameset--move-onscreen): Accept new PRED value for FORCE-ONSCREEN.
  Accept :all, not 'all.
  (frameset-restore): Add new predicate values for FORCE-ONSCREEN and
  FORCE-DISPLAY.  Use :keywords for constant arguments to avoid collision
  with fbound symbols.  Fix frame id matching, and remove matching ids if
  the frame being restored is deleted.  Obey :delete.

* lisp/desktop.el (desktop-restore-forces-onscreen)
  (desktop-restore-reuses-frames): Document :keyword constant values.
  (desktop-filter-parameters-alist): Remove, now identical to
  frameset-filter-alist.
  (desktop--filter-tty*): Remove, moved to frameset.el.
  (desktop-save-frameset, desktop-restore-frameset):
  Do not pass :filters argument.
2013-08-05 00:12:18 +02:00
Juanma Barranquero
a04d36a068 lisp/frameset.el (frameset--reuse-frame): Use correct frame-id to find frame.
(frameset--set-id, frameset--process-minibuffer-frames)
(frameset-restore): Rename parameter `frameset-id' to `frame-id'.
2013-08-04 04:57:45 +02:00
Juanma Barranquero
51d30f2c72 lisp/frameset.el: Fix typos and autoload cookies.
(frameset-p, frameset-save): Fix autoload cookies.
(frameset-filter-minibuffer): Doc fix.
(frameset-restore): Fix autoload cookie.  Fix typo in docstring.
2013-08-04 02:58:32 +02:00
Juanma Barranquero
6475c94b6a lisp/frameset.el (frameset-prop): Preserve `setf' semantics in setter. 2013-08-03 15:33:22 +02:00
Juanma Barranquero
2613dea20a lisp/frameset.el (frameset-prop): New function and setter.
(frameset-save): Do not modify frame list passed by the caller.
2013-08-03 11:57:07 +02:00
Juanma Barranquero
f078d5700b lisp/frameset.el (frameset-filter-params): Fix order of arguments. 2013-08-02 18:03:13 +02:00
Juanma Barranquero
9421876de5 lisp/desktop.el: Move code related to saving frames to frameset.el.
Require frameset.
(desktop-restore-frames): Doc fix.
(desktop-restore-reuses-frames): Rename from
desktop-restoring-reuses-frames.
(desktop-saved-frameset): Rename from desktop-saved-frame-states.
(desktop-clear): Clear frames too.
(desktop-filter-parameters-alist): Set from frameset-filter-alist.
(desktop--filter-tty*, desktop-save, desktop-read):
Use frameset functions.
(desktop-before-saving-frames-functions, desktop--filter-*-color)
(desktop--filter-minibuffer, desktop--filter-restore-desktop-parm)
(desktop--filter-save-desktop-parm, desktop--filter-iconified-position)
(desktop-restore-in-original-display-p, desktop--filter-frame-parms)
(desktop--process-minibuffer-frames, desktop-save-frames)
(desktop--reuse-list, desktop--compute-pos, desktop--move-onscreen)
(desktop--find-frame, desktop--select-frame, desktop--make-frame)
(desktop--sort-states, desktop-restoring-frames-p)
(desktop-restore-frames): Remove.  Most code moved to frameset.el.
(desktop-restoring-frameset-p, desktop-restore-frameset)
(desktop--check-dont-save, desktop-save-frameset): New functions.
(desktop--app-id): New constant.
(desktop-first-buffer, desktop-buffer-ok-count)
(desktop-buffer-fail-count): Move before first use.
lisp/frameset.el: New file.
2013-08-02 06:33:58 +02:00