Changeset - a8d42c051613
[Not reviewed]
0 1 0
Sergey Pashinin - 11 years ago 2014-08-23 11:36:35
sergey@pashinin.com
(re)moved wg-save-frames
1 file changed with 14 insertions and 17 deletions:
0 comments (0 inline, 0 general)
src/workgroups-session.el
Show inline comments
 
@@ -104,26 +104,39 @@ confirmation is required unless you supply a prefix argument.
 

	
 
Think of it as `write-file' for Workgroups sessions."
 
  (interactive (list (read-file-name "Save session as: ")
 
                     (not current-prefix-arg)))
 
  (when (and confirm (file-exists-p filename))
 
    (unless (y-or-n-p (format "File `%s' exists; overwrite? " filename))
 
      (error "Cancelled")))
 
  (unless (file-writable-p filename)
 
    (error "File %s can't be written to" filename))
 
  (wg-perform-session-maintenance)
 
  (setf (wg-session-file-name (wg-current-session)) filename)
 
  (setf (wg-session-version (wg-current-session)) wg-version)
 

	
 
  ;; Save opened frames as a session parameter "frame-list".
 
  ;; Exclude `selected-frame' and daemon one (if any).
 
  ;; http://stackoverflow.com/questions/21151992/why-emacs-as-daemon-gives-1-more-frame-than-is-opened
 
  (if wg-control-frames
 
      (wg-save-frames))
 
      (let ((fl (frame-list)))
 
        (mapc (lambda (frame)
 
                (if (string-equal "initial_terminal" (terminal-name frame))
 
                    (delete frame fl))) fl)
 
        (setq fl (delete (selected-frame) fl))
 
        (if (wg-current-session t)
 
            (wg-set-session-parameter (wg-current-session t)
 
                                      'frame-list
 
                                      (mapcar 'wg-frame-to-wconfig fl)))))
 

	
 
  (wg-write-sexp-to-file
 
   (wg-pickel-all-session-parameters (wg-current-session))
 
   filename)
 
  (wg-mark-everything-unmodified)
 
  (wg-fontified-message (:cmd "Wrote: ") (:file filename)))
 
(defalias 'wg-save-session-as 'wg-write-session-file)
 

	
 
(defun wg-determine-session-save-file-name ()
 
  "Return the filename in which to save the session."
 
  (or (wg-session-file-name (wg-current-session))
 
      (and wg-session-load-on-start wg-session-file)))
 

	
 
@@ -259,40 +272,24 @@ resolved by Emacs."
 
  (set-frame-parameter frame 'wg-current-workgroup-uid nil)
 
  (set-frame-parameter frame 'wg-previous-workgroup-uid nil))
 

	
 
(defun wg-save-session-on-exit (behavior)
 
  "Perform session-saving operations based on BEHAVIOR."
 
  (cl-case behavior
 
    (ask (wg-query-and-save-if-modified))
 
    (save
 
     (if (wg-determine-session-save-file-name)
 
         (wg-save-session)
 
       (wg-query-and-save-if-modified)))))
 

	
 
(defun wg-save-frames ()
 
  "Save opened frames as a session parameter.
 
Exclude `selected-frame' and daemon one (if any).
 
http://stackoverflow.com/questions/21151992/why-emacs-as-daemon-gives-1-more-frame-than-is-opened"
 
  (interactive)
 
  (let ((fl (frame-list)))
 
    (mapc (lambda (frame)
 
            (if (string-equal "initial_terminal" (terminal-name frame))
 
                (delete frame fl))) fl)
 
    (setq fl (delete (selected-frame) fl))
 
    (if (wg-current-session t)
 
        (wg-set-session-parameter (wg-current-session t)
 
                                  'frame-list
 
                                  (mapcar 'wg-frame-to-wconfig fl)))))
 

	
 

	
 
(defun wg-reload-session ()
 
  "Reload current workgroups session."
 
  (interactive)
 
  (let ((file (or (wg-determine-session-save-file-name)
 
                  wg-session-file)))
 
    (when (file-exists-p file)
 
      (condition-case err
 
          (wg-open-session wg-session-file)
 
        (progn
 
          (wg-create-first-wg)
 
          (error (message "Error finding session-file: %s" err)))))
 
    (wg-create-first-wg)))
0 comments (0 inline, 0 general)