(delay-warning 'frameset (error-message-string err) :warning))))))
;; Make sure there's at least one visible frame.
- (unless (or (daemonp) (visible-frame-list))
+ (unless (or (daemonp)
+ (catch 'visible
+ (maphash (lambda (frame _)
+ (and (frame-live-p frame) (frame-visible-p frame)
+ (throw 'visible t)))
+ frameset--action-map)))
(make-frame-visible (selected-frame)))))
\f
(set-frame-selected-window frame window)
(with-current-buffer buffer (goto-char (aref data 2)))))))
+;;;###autoload
+(defun frameset--print-register (data)
+ "Print basic info about frameset stored in DATA.
+Called from `list-registers' and `view-register'. Internal use only."
+ (let* ((fs (aref data 0))
+ (ns (length (frameset-states fs))))
+ (princ (format "a frameset (%d frame%s, saved on %s)."
+ ns
+ (if (= 1 ns) "" "s")
+ (format-time-string "%c" (frameset-timestamp fs))))))
+
;;;###autoload
(defun frameset-to-register (register)
"Store the current frameset in register REGISTER.
;; in the current buffer, so record that separately.
(frameset-frame-id nil)
(point-marker))
- :print-func (lambda (_data) (princ "a frameset."))
+ :print-func #'frameset--print-register
:jump-func #'frameset--jump-to-register)))
(provide 'frameset)