emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About the 'minibuffer' frame parameter


From: martin rudalics
Subject: Re: About the 'minibuffer' frame parameter
Date: Tue, 09 Aug 2016 10:27:55 +0200

> So what is your suggestion for the course of actions?

(1) Make sure that store_frame_param doesn't store invalid parameter
    values.

(2) Never store a minibuffer window as frame parameter.

(3) Have ‘frame-parameter’ return the 'minibuffer' parameter as stored
    internally.  If no stored value is available, return t.

(4) Wait for regression reports.

(5) Fix the documentation.

(6) Fix/remove related comments.

Together (1) and (2) mean that the parameter becomes immutable as
occasionally already claimed.  (3) will require changes to frameset.el.
FWIW, the only code in frameset.el that seems to depend on the old
behavior is:

                            (let ((w (frame-parameter f 'minibuffer)))
                              (and (window-live-p w)
                                   (window-minibuffer-p w)
                                   (eq (window-frame w) f))))

This would be probably replaced by:

                            (let ((w (minibuffer-window f)))
                              (and (window-live-p w)
                                   (eq (window-frame w) f))))

If anyone knows about code that does similar things in this or any other
package please tell us.

One open question is how to handle the minibuffer window in frame
configurations.  For example, the valid form

(let ((minibuffer-less-frame (make-frame '((minibuffer . nil))))
      (configuration (current-frame-configuration))
      (minibuffer-only-frame (make-frame '((minibuffer . only)))))
  (set-frame-parameter
   minibuffer-less-frame 'minibuffer (frame-root-window minibuffer-only-frame))
  (set-frame-configuration configuration))

currently throws an error while

(let ((initial-frame (selected-frame))
      (minibuffer-less-frame (make-frame '((minibuffer . nil))))
      (configuration (current-frame-configuration))
      (minibuffer-only-frame (make-frame '((minibuffer . only)))))
  (set-frame-parameter
   minibuffer-less-frame 'minibuffer (frame-root-window minibuffer-only-frame))
  (delete-frame initial-frame)
  (set-frame-configuration configuration))

in addition leaves me with a minibuffer-less frame I can't neither make
visible nor deiconify.

martin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]