X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/f79b43b27b974084222410a51040a90357a863fb..0afb6242c77237cd2cc1f0e623b08e20488c5b74:/lisp/frame.el diff --git a/lisp/frame.el b/lisp/frame.el index 1576ae7e4c..99f7a26d27 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -1,7 +1,7 @@ ;;; frame.el --- multi-frame management independent of window systems ;; Copyright (C) 1993, 1994, 1996, 1997, 2000, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal @@ -82,14 +82,19 @@ use this three-step process: :group 'frames) (defcustom minibuffer-frame-alist '((width . 80) (height . 2)) - "Alist of parameters for initial minibuffer frame. + "Alist of parameters for the initial minibuffer frame. +This is the minibuffer frame created if `initial-frame-alist' +calls for a frame without a minibuffer. The parameters specified +here supersede those given in `default-frame-alist', for the +initial minibuffer frame. + You can set this in your init file; for example, (setq minibuffer-frame-alist '((top . 1) (left . 1) (width . 80) (height . 2))) -Parameters specified here supersede the values given in -`default-frame-alist', for a minibuffer frame." +It is not necessary to include (minibuffer . only); that is +appended when the minibuffer frame is created." :type '(repeat (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value"))) @@ -120,7 +125,7 @@ affected by this variable." This function is called with no arguments and should return a new frame. The default value calls `make-frame' with the argument `pop-up-frame-alist'." - :type '(choice (const nil) (function :tag "function")) + :type 'function :group 'frames) (defcustom special-display-frame-alist @@ -732,7 +737,7 @@ You cannot specify either `width' or `height', you must use neither or both. (window-system . nil) The frame should be displayed on a terminal device. (window-system . x) The frame should be displayed in an X window. - (terminal . ID) The frame should use the terminal identified by ID. + (terminal . TERMINAL) The frame should use the terminal object TERMINAL. Before the frame is created (via `frame-creation-function-alist'), functions on the hook `before-make-frame-hook' are run. After the frame is created, functions @@ -858,7 +863,7 @@ the user during startup." (defun select-frame-set-input-focus (frame) "Select FRAME, raise it, and set input focus, if possible. -If `mouse-autoselect-window' is non-nil, also move mouse cursor +If `mouse-autoselect-window' is non-nil, also move mouse pointer to FRAME's selected window. Otherwise, if `focus-follows-mouse' is non-nil, move mouse cursor to FRAME." (select-frame frame) @@ -1022,7 +1027,16 @@ is given and non-nil, the unwanted frames are iconified instead." (defun frame-height (&optional frame) "Return number of lines available for display on FRAME. -If FRAME is omitted, describe the currently selected frame." +If FRAME is omitted, describe the currently selected frame. +Exactly what is included in the return value depends on the +window-system and toolkit in use - see `frame-pixel-height' for +more details. The lines are in units of the default font height. + +The result is roughly related to the frame pixel height via +height in pixels = height in lines * `frame-char-height'. +However, this is only approximate, and is complicated e.g. by the +fact that individual window lines and menu bar lines can have +differing font heights." (cdr (assq 'height (frame-parameters frame)))) (defun frame-width (&optional frame) @@ -1480,6 +1494,10 @@ left untouched. FRAME nil or omitted means use the selected frame." (setq frame (selected-frame))) (let* ((mini-frame (window-frame (minibuffer-window frame))) (frames (delq mini-frame (delq frame (frame-list))))) + ;; Only consider frames on the same terminal. + (dolist (frame (prog1 frames (setq frames nil))) + (if (eq (frame-terminal) (frame-terminal frame)) + (push frame frames))) ;; Delete mon-minibuffer-only frames first, because `delete-frame' ;; signals an error when trying to delete a mini-frame that's ;; still in use by another frame. @@ -1507,6 +1525,7 @@ left untouched. FRAME nil or omitted means use the selected frame." "Non-nil means highlight trailing whitespace. This is done in the face `trailing-whitespace'." :type 'boolean + :safe 'booleanp :group 'whitespace-faces) @@ -1595,8 +1614,8 @@ cursor display. On a text-only terminal, this is not implemented." :init-value (not (or noninteractive no-blinking-cursor (eq system-type 'ms-dos) - (not (memq window-system '(x w32))))) - :initialize 'custom-initialize-safe-default + (not (memq window-system '(x w32 ns))))) + :initialize 'custom-initialize-delay :group 'cursor :global t (if blink-cursor-idle-timer (cancel-timer blink-cursor-idle-timer))