Mercurial > emacs
diff lisp/subr.el @ 83488:f47495b26508
Fix ediff problems. (Reported by Dan Nicolaescu.)
* lisp/subr.el (with-selected-frame): Make sure the current buffer is
restored as well.
* src/xfns.c (Fx_create_frame): Use `store_frame_param' to set
`window-system' frame parameter, and make sure it overrides any
user-supplied setting.
* src/xfns.c (x_icon): Disable redundant call to
`x_wm_set_window_state'. (Also applied in CVS.)
* lisp/faces.el (x-create-frame-with-faces): Don't make frame visible
until we are done setting up all its parameters.
* lisp/ediff-wind.el (ediff-setup-windows-automatic): New function.
(ediff-window-setup-function): Use it as default.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-528
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 12 Mar 2006 04:12:31 +0000 |
parents | 8976b9f5eda1 |
children | 81f2d90dee68 |
line wrap: on
line diff
--- a/lisp/subr.el Fri Mar 10 11:23:32 2006 +0000 +++ b/lisp/subr.el Sun Mar 12 04:12:31 2006 +0000 @@ -2130,12 +2130,17 @@ The value returned is the value of the last form in BODY. See also `with-temp-buffer'." (declare (indent 1) (debug t)) - `(let ((save-selected-frame (selected-frame))) - (unwind-protect - (progn (select-frame ,frame) - ,@body) - (if (frame-live-p save-selected-frame) - (select-frame save-selected-frame))))) + (let ((old-frame (make-symbol "old-frame")) + (old-buffer (make-symbol "old-buffer"))) + `(let ((,old-frame (selected-frame)) + (,old-buffer (current-buffer))) + (unwind-protect + (progn (select-frame ,frame) + ,@body) + (if (frame-live-p ,old-frame) + (select-frame ,old-frame)) + (if (buffer-live-p ,old-buffer) + (set-buffer ,old-buffer)))))) (defmacro with-temp-file (file &rest body) "Create a new buffer, evaluate BODY there, and write the buffer to FILE.