Mercurial > emacs
annotate lisp/frame.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | 69b4c339845d |
children | 4cb7e7beea27 |
rev | line source |
---|---|
777 | 1 ;;; frame.el --- multi-frame management independent of window systems. |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
2 |
17665 | 3 ;; Copyright (C) 1993, 1994, 1996, 1997 Free Software Foundation, Inc. |
846
20674ae6bf52
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
827
diff
changeset
|
4 |
793
6fb68a1460a6
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
5 ;; Maintainer: FSF |
811
e694e0879463
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
6 ;; Keywords: internal |
793
6fb68a1460a6
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
7 |
14169 | 8 ;; This file is part of GNU Emacs. |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
394 | 24 |
793
6fb68a1460a6
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
25 ;;; Code: |
6fb68a1460a6
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
777
diff
changeset
|
26 |
777 | 27 (defvar frame-creation-function nil |
28 "Window-system dependent function to call to create a new frame. | |
29 The window system startup file should set this to its frame creation | |
394 | 30 function, which should take an alist of parameters as its argument.") |
31 | |
16516
e47c5d7e9c5d
(initial-frame-alist): Make default value nil--
Richard M. Stallman <rms@gnu.org>
parents:
16295
diff
changeset
|
32 ;;; The initial value given here for used to ask for a minibuffer. |
e47c5d7e9c5d
(initial-frame-alist): Make default value nil--
Richard M. Stallman <rms@gnu.org>
parents:
16295
diff
changeset
|
33 ;;; But that's not necessary, because the default is to have one. |
e47c5d7e9c5d
(initial-frame-alist): Make default value nil--
Richard M. Stallman <rms@gnu.org>
parents:
16295
diff
changeset
|
34 ;;; By not specifying it here, we let an X resource specify it. |
23745
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
35 (defcustom initial-frame-alist nil |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
36 "Alist of frame parameters for creating the initial X window frame. |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
37 You can set this in your `.emacs' file; for example, |
777 | 38 (setq initial-frame-alist '((top . 1) (left . 1) (width . 80) (height . 55))) |
8129
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
39 Parameters specified here supersede the values given in `default-frame-alist'. |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
40 |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
41 If the value calls for a frame without a minibuffer, and you have not created |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
42 a minibuffer frame on your own, one is created according to |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
43 `minibuffer-frame-alist'. |
8129
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
44 |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
45 You can specify geometry-related options for just the initial frame |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
46 by setting this variable in your `.emacs' file; however, they won't |
10557 | 47 take effect until Emacs reads `.emacs', which happens after first creating |
8129
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
48 the frame. If you want the frame to have the proper geometry as soon |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
49 as it appears, you need to use this three-step process: |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
50 * Specify X resources to give the geometry you want. |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
51 * Set `default-frame-alist' to override these options so that they |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
52 don't affect subsequent frames. |
aa25c6ea397d
(initial-frame-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
8072
diff
changeset
|
53 * Set `initial-frame-alist' in a way that matches the X resources, |
23745
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
54 to override what you put in `default-frame-alist'." |
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
55 :type '(repeat (cons :format "%v" |
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
56 (symbol :tag "Parameter") |
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
57 (sexp :tag "Value"))) |
43927e2a5899
(initial-frame-alist): Add defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
22232
diff
changeset
|
58 :group 'frames) |
394 | 59 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
60 (defvar minibuffer-frame-alist '((width . 80) (height . 2)) |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
61 "Alist of frame parameters for initially creating a minibuffer frame. |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
62 You can set this in your `.emacs' file; for example, |
777 | 63 (setq minibuffer-frame-alist |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
64 '((top . 1) (left . 1) (width . 80) (height . 2))) |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
65 Parameters specified here supersede the values given in |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
66 `default-frame-alist'.") |
394 | 67 |
777 | 68 (defvar pop-up-frame-alist nil |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
69 "Alist of frame parameters used when creating pop-up frames. |
777 | 70 Pop-up frames are used for completions, help, and the like. |
394 | 71 This variable can be set in your init file, like this: |
777 | 72 (setq pop-up-frame-alist '((width . 80) (height . 20))) |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3554
diff
changeset
|
73 These supersede the values given in `default-frame-alist'.") |
394 | 74 |
777 | 75 (setq pop-up-frame-function |
394 | 76 (function (lambda () |
7322
1f3536445289
(frame-notice-user-settings): Discard `reverse' when
Richard M. Stallman <rms@gnu.org>
parents:
7309
diff
changeset
|
77 (make-frame pop-up-frame-alist)))) |
394 | 78 |
17665 | 79 (defcustom special-display-frame-alist |
7057
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
80 '((height . 14) (width . 80) (unsplittable . t)) |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
81 "*Alist of frame parameters used when creating special frames. |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
82 Special frames are used for buffers whose names are in |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
83 `special-display-buffer-names' and for buffers whose names match |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
84 one of the regular expressions in `special-display-regexps'. |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
85 This variable can be set in your init file, like this: |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
86 (setq special-display-frame-alist '((width . 80) (height . 20))) |
17665 | 87 These supersede the values given in `default-frame-alist'." |
88 :type '(repeat (cons :format "%v" | |
89 (symbol :tag "Parameter") | |
90 (sexp :tag "Value"))) | |
91 :group 'frames) | |
7057
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
92 |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
93 ;; Display BUFFER in its own frame, reusing an existing window if any. |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
94 ;; Return the window chosen. |
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
95 ;; Currently we do not insist on selecting the window within its frame. |
8993
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
96 ;; If ARGS is an alist, use it as a list of frame parameter specs. |
10557 | 97 ;; If ARGS is a list whose car is a symbol, |
8993
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
98 ;; use (car ARGS) as a function to do the work. |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
99 ;; Pass it BUFFER as first arg, and (cdr ARGS) gives the rest of the args. |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
100 (defun special-display-popup-frame (buffer &optional args) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
101 (if (and args (symbolp (car args))) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
102 (apply (car args) buffer (cdr args)) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
103 (let ((window (get-buffer-window buffer t))) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
104 (if window |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
105 ;; If we have a window already, make it visible. |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
106 (let ((frame (window-frame window))) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
107 (make-frame-visible frame) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
108 (raise-frame frame) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
109 window) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
110 ;; If no window yet, make one in a new frame. |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
111 (let ((frame (make-frame (append args special-display-frame-alist)))) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
112 (set-window-buffer (frame-selected-window frame) buffer) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
113 (set-window-dedicated-p (frame-selected-window frame) t) |
c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
8990
diff
changeset
|
114 (frame-selected-window frame)))))) |
7057
7102dd374da4
(special-display-frame-alist): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
7020
diff
changeset
|
115 |
9175
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
116 ;; Handle delete-frame events from the X server. |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
117 (defun handle-delete-frame (event) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
118 (interactive "e") |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
119 (let ((frame (posn-window (event-start event))) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
120 (i 0) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
121 (tail (frame-list))) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
122 (while tail |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
123 (and (frame-visible-p (car tail)) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
124 (not (eq (car tail) frame)) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
125 (setq i (1+ i))) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
126 (setq tail (cdr tail))) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
127 (if (> i 0) |
df2f1773aa06
(handle-delete-frame): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8993
diff
changeset
|
128 (delete-frame frame t) |
14701
ea592092c43c
(handle-delete-frame): Use save-buffers-kill-emacs.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
129 ;; Gildea@x.org says it is ok to ask questions before terminating. |
ea592092c43c
(handle-delete-frame): Use save-buffers-kill-emacs.
Richard M. Stallman <rms@gnu.org>
parents:
14169
diff
changeset
|
130 (save-buffers-kill-emacs)))) |
394 | 131 |
777 | 132 ;;;; Arrangement of frames at startup |
394 | 133 |
134 ;;; 1) Load the window system startup file from the lisp library and read the | |
135 ;;; high-priority arguments (-q and the like). The window system startup | |
777 | 136 ;;; file should create any frames specified in the window system defaults. |
10557 | 137 ;;; |
777 | 138 ;;; 2) If no frames have been opened, we open an initial text frame. |
394 | 139 ;;; |
140 ;;; 3) Once the init file is done, we apply any newly set parameters | |
777 | 141 ;;; in initial-frame-alist to the frame. |
394 | 142 |
10557 | 143 ;; These are now called explicitly at the proper times, |
2763
a93e407bf41c
Don't put frame-initialize and frame-notice-user-settings on hooks.
Richard M. Stallman <rms@gnu.org>
parents:
2571
diff
changeset
|
144 ;; since that is easier to understand. |
a93e407bf41c
Don't put frame-initialize and frame-notice-user-settings on hooks.
Richard M. Stallman <rms@gnu.org>
parents:
2571
diff
changeset
|
145 ;; Actually using hooks within Emacs is bad for future maintenance. --rms. |
a93e407bf41c
Don't put frame-initialize and frame-notice-user-settings on hooks.
Richard M. Stallman <rms@gnu.org>
parents:
2571
diff
changeset
|
146 ;; (add-hook 'before-init-hook 'frame-initialize) |
a93e407bf41c
Don't put frame-initialize and frame-notice-user-settings on hooks.
Richard M. Stallman <rms@gnu.org>
parents:
2571
diff
changeset
|
147 ;; (add-hook 'window-setup-hook 'frame-notice-user-settings) |
394 | 148 |
777 | 149 ;;; If we create the initial frame, this is it. |
150 (defvar frame-initial-frame nil) | |
394 | 151 |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
152 ;; Record the parameters used in frame-initialize to make the initial frame. |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
153 (defvar frame-initial-frame-alist) |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
154 |
7343
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
155 (defvar frame-initial-geometry-arguments nil) |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
156 |
394 | 157 ;;; startup.el calls this function before loading the user's init |
777 | 158 ;;; file - if there is no frame with a minibuffer open now, create |
394 | 159 ;;; one to display messages while loading the init file. |
777 | 160 (defun frame-initialize () |
10557 | 161 |
394 | 162 ;; Are we actually running under a window system at all? |
15399
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
163 (if (and window-system (not noninteractive) (not (eq window-system 'pc))) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
164 (progn |
9737
1368ece6ec04
(frame-initialize): Set special-display-function here,
Richard M. Stallman <rms@gnu.org>
parents:
9687
diff
changeset
|
165 ;; Turn on special-display processing only if there's a window system. |
1368ece6ec04
(frame-initialize): Set special-display-function here,
Richard M. Stallman <rms@gnu.org>
parents:
9687
diff
changeset
|
166 (setq special-display-function 'special-display-popup-frame) |
1368ece6ec04
(frame-initialize): Set special-display-function here,
Richard M. Stallman <rms@gnu.org>
parents:
9687
diff
changeset
|
167 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
168 ;; If there is no frame with a minibuffer besides the terminal |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
169 ;; frame, then we need to create the opening frame. Make sure |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
170 ;; it has a minibuffer, but let initial-frame-alist omit the |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
171 ;; minibuffer spec. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
172 (or (delq terminal-frame (minibuffer-frame-list)) |
3050
8e2472cd4409
(frame-initialize): Handle `reverse' as parameter.
Richard M. Stallman <rms@gnu.org>
parents:
2870
diff
changeset
|
173 (progn |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
174 (setq frame-initial-frame-alist |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
175 (append initial-frame-alist default-frame-alist)) |
7660
d47966265080
(frame-initialize): Record in frame-initial-frame-alist
Richard M. Stallman <rms@gnu.org>
parents:
7436
diff
changeset
|
176 (or (assq 'horizontal-scroll-bars frame-initial-frame-alist) |
d47966265080
(frame-initialize): Record in frame-initial-frame-alist
Richard M. Stallman <rms@gnu.org>
parents:
7436
diff
changeset
|
177 (setq frame-initial-frame-alist |
d47966265080
(frame-initialize): Record in frame-initial-frame-alist
Richard M. Stallman <rms@gnu.org>
parents:
7436
diff
changeset
|
178 (cons '(horizontal-scroll-bars . t) |
d47966265080
(frame-initialize): Record in frame-initial-frame-alist
Richard M. Stallman <rms@gnu.org>
parents:
7436
diff
changeset
|
179 frame-initial-frame-alist))) |
3050
8e2472cd4409
(frame-initialize): Handle `reverse' as parameter.
Richard M. Stallman <rms@gnu.org>
parents:
2870
diff
changeset
|
180 (setq default-minibuffer-frame |
8e2472cd4409
(frame-initialize): Handle `reverse' as parameter.
Richard M. Stallman <rms@gnu.org>
parents:
2870
diff
changeset
|
181 (setq frame-initial-frame |
18892
fb7337970b45
(frame-initialize): Don't alter vertical-scroll-bars
Richard M. Stallman <rms@gnu.org>
parents:
18481
diff
changeset
|
182 (make-frame frame-initial-frame-alist))) |
3433
2f5a9b79edf7
(frame-initialize): Delete geometry parms from initial-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
3183
diff
changeset
|
183 ;; Delete any specifications for window geometry parameters |
2f5a9b79edf7
(frame-initialize): Delete geometry parms from initial-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
3183
diff
changeset
|
184 ;; so that we won't reapply them in frame-notice-user-settings. |
2f5a9b79edf7
(frame-initialize): Delete geometry parms from initial-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
3183
diff
changeset
|
185 ;; It would be wrong to reapply them then, |
2f5a9b79edf7
(frame-initialize): Delete geometry parms from initial-frame-alist.
Richard M. Stallman <rms@gnu.org>
parents:
3183
diff
changeset
|
186 ;; because that would override explicit user resizing. |
3971
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
187 (setq initial-frame-alist |
7309
beb9070c6fec
(frame-initialize): Delete the code for reverse-video.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
188 (frame-remove-geometry-params initial-frame-alist)))) |
10557 | 189 ;; At this point, we know that we have a frame open, so we |
777 | 190 ;; can delete the terminal frame. |
191 (delete-frame terminal-frame) | |
192 (setq terminal-frame nil)) | |
10557 | 193 |
11038
f93c3156e05a
(frame-initialize): Set frame-creation-function to `make-terminal-frame' if
Karl Heuer <kwzh@gnu.org>
parents:
10601
diff
changeset
|
194 ;; No, we're not running a window system. Use make-terminal-frame if |
f93c3156e05a
(frame-initialize): Set frame-creation-function to `make-terminal-frame' if
Karl Heuer <kwzh@gnu.org>
parents:
10601
diff
changeset
|
195 ;; we support that feature, otherwise arrange to cause errors. |
15399
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
196 (or (eq window-system 'pc) |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
197 (setq frame-creation-function |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
198 (if (fboundp 'make-terminal-frame) |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
199 'make-terminal-frame |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
200 (function |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
201 (lambda (parameters) |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
202 (error |
e9ec008793fd
(frame-initialize): Don't count MSDOS neither as
Richard M. Stallman <rms@gnu.org>
parents:
15364
diff
changeset
|
203 "Can't create multiple frames without a window system")))))))) |
10557 | 204 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
205 ;;; startup.el calls this function after loading the user's init |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
206 ;;; file. Now default-frame-alist and initial-frame-alist contain |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
207 ;;; information to which we must react; do what needs to be done. |
777 | 208 (defun frame-notice-user-settings () |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
209 |
8056
1c5fd2cdfb36
(frame-notice-user-settings): Make menu-bar-mode
Richard M. Stallman <rms@gnu.org>
parents:
7712
diff
changeset
|
210 ;; Make menu-bar-mode and default-frame-alist consistent. |
11039
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
211 (if (boundp 'menu-bar-mode) |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
212 (let ((default (assq 'menu-bar-lines default-frame-alist))) |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
213 (if default |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
214 (setq menu-bar-mode (not (eq (cdr default) 0))) |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
215 (setq default-frame-alist |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
216 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) |
c9e2537da847
(other-frame): Don't try to unfocus in a termcap frame.
Karl Heuer <kwzh@gnu.org>
parents:
11038
diff
changeset
|
217 default-frame-alist))))) |
8056
1c5fd2cdfb36
(frame-notice-user-settings): Make menu-bar-mode
Richard M. Stallman <rms@gnu.org>
parents:
7712
diff
changeset
|
218 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
219 ;; Creating and deleting frames may shift the selected frame around, |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
220 ;; and thus the current buffer. Protect against that. We don't |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
221 ;; want to use save-excursion here, because that may also try to set |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
222 ;; the buffer of the selected window, which fails when the selected |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
223 ;; window is the minibuffer. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
224 (let ((old-buffer (current-buffer))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
225 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
226 ;; If the initial frame is still around, apply initial-frame-alist |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
227 ;; and default-frame-alist to it. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
228 (if (frame-live-p frame-initial-frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
229 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
230 ;; The initial frame we create above always has a minibuffer. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
231 ;; If the user wants to remove it, or make it a minibuffer-only |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
232 ;; frame, then we'll have to delete the current frame and make a |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
233 ;; new one; you can't remove or add a root window to/from an |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
234 ;; existing frame. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
235 ;; |
1113 | 236 ;; NOTE: default-frame-alist was nil when we created the |
237 ;; existing frame. We need to explicitly include | |
238 ;; default-frame-alist in the parameters of the screen we | |
239 ;; create here, so that its new value, gleaned from the user's | |
240 ;; .emacs file, will be applied to the existing screen. | |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
241 (if (not (eq (cdr (or (assq 'minibuffer initial-frame-alist) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
242 (assq 'minibuffer default-frame-alist) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
243 '(minibuffer . t))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
244 t)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
245 ;; Create the new frame. |
7357
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
246 (let (parms new) |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
247 ;; If the frame isn't visible yet, wait till it is. |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
248 ;; If the user has to position the window, |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
249 ;; Emacs doesn't know its real position until |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
250 ;; the frame is seen to be visible. |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
251 (while (not (cdr (assq 'visibility |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
252 (frame-parameters frame-initial-frame)))) |
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
253 (sleep-for 1)) |
12220
4f42575780e6
(frame-notice-user-settings): When making a minibufferless
Richard M. Stallman <rms@gnu.org>
parents:
12015
diff
changeset
|
254 (setq parms (frame-parameters frame-initial-frame)) |
4f42575780e6
(frame-notice-user-settings): When making a minibufferless
Richard M. Stallman <rms@gnu.org>
parents:
12015
diff
changeset
|
255 ;; Get rid of `name' unless it was specified explicitly before. |
4f42575780e6
(frame-notice-user-settings): When making a minibufferless
Richard M. Stallman <rms@gnu.org>
parents:
12015
diff
changeset
|
256 (or (assq 'name frame-initial-frame-alist) |
4f42575780e6
(frame-notice-user-settings): When making a minibufferless
Richard M. Stallman <rms@gnu.org>
parents:
12015
diff
changeset
|
257 (setq parms (delq (assq 'name parms) parms))) |
7357
cebaa850212d
(frame-notice-user-settings): Wait till frame becomes
Richard M. Stallman <rms@gnu.org>
parents:
7344
diff
changeset
|
258 (setq parms (append initial-frame-alist |
7322
1f3536445289
(frame-notice-user-settings): Discard `reverse' when
Richard M. Stallman <rms@gnu.org>
parents:
7309
diff
changeset
|
259 default-frame-alist |
12220
4f42575780e6
(frame-notice-user-settings): When making a minibufferless
Richard M. Stallman <rms@gnu.org>
parents:
12015
diff
changeset
|
260 parms |
7322
1f3536445289
(frame-notice-user-settings): Discard `reverse' when
Richard M. Stallman <rms@gnu.org>
parents:
7309
diff
changeset
|
261 nil)) |
7344
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
262 ;; Get rid of `reverse', because that was handled |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
263 ;; when we first made the frame. |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
264 (setq parms (cons '(reverse) (delq (assq 'reverse parms) parms))) |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
265 (if (assq 'height frame-initial-geometry-arguments) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
266 (setq parms (frame-delete-all 'height parms))) |
7344
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
267 (if (assq 'width frame-initial-geometry-arguments) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
268 (setq parms (frame-delete-all 'width parms))) |
7344
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
269 (if (assq 'left frame-initial-geometry-arguments) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
270 (setq parms (frame-delete-all 'left parms))) |
7344
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
271 (if (assq 'top frame-initial-geometry-arguments) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
272 (setq parms (frame-delete-all 'top parms))) |
7344
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
273 (setq new |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
274 (make-frame |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
275 ;; Use the geometry args that created the existing |
17a251bf595b
(frame-notice-user-settings): Use geometry parms from frame
Richard M. Stallman <rms@gnu.org>
parents:
7343
diff
changeset
|
276 ;; frame, rather than the parms we get for it. |
10601
b357feae0096
(frame-notice-user-settings): Avoid having the window manager re-prompt for
Karl Heuer <kwzh@gnu.org>
parents:
10574
diff
changeset
|
277 (append frame-initial-geometry-arguments |
b357feae0096
(frame-notice-user-settings): Avoid having the window manager re-prompt for
Karl Heuer <kwzh@gnu.org>
parents:
10574
diff
changeset
|
278 '((user-size . t) (user-position . t)) |
b357feae0096
(frame-notice-user-settings): Avoid having the window manager re-prompt for
Karl Heuer <kwzh@gnu.org>
parents:
10574
diff
changeset
|
279 parms))) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
280 ;; The initial frame, which we are about to delete, may be |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
281 ;; the only frame with a minibuffer. If it is, create a |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
282 ;; new one. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
283 (or (delq frame-initial-frame (minibuffer-frame-list)) |
12012
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
284 (make-initial-minibuffer-frame nil)) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
285 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
286 ;; If the initial frame is serving as a surrogate |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
287 ;; minibuffer frame for any frames, we need to wean them |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
288 ;; onto a new frame. The default-minibuffer-frame |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
289 ;; variable must be handled similarly. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
290 (let ((users-of-initial |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
291 (filtered-frame-list |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
292 (function (lambda (frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
293 (and (not (eq frame frame-initial-frame)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
294 (eq (window-frame |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
295 (minibuffer-window frame)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
296 frame-initial-frame))))))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
297 (if (or users-of-initial |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
298 (eq default-minibuffer-frame frame-initial-frame)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
299 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
300 ;; Choose an appropriate frame. Prefer frames which |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
301 ;; are only minibuffers. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
302 (let* ((new-surrogate |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
303 (car |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
304 (or (filtered-frame-list |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
305 (function |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
306 (lambda (frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
307 (eq (cdr (assq 'minibuffer |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
308 (frame-parameters frame))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
309 'only)))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
310 (minibuffer-frame-list)))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
311 (new-minibuffer (minibuffer-window new-surrogate))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
312 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
313 (if (eq default-minibuffer-frame frame-initial-frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
314 (setq default-minibuffer-frame new-surrogate)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
315 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
316 ;; Wean the frames using frame-initial-frame as |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
317 ;; their minibuffer frame. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
318 (mapcar |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
319 (function |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
320 (lambda (frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
321 (modify-frame-parameters |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
322 frame (list (cons 'minibuffer new-minibuffer))))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
323 users-of-initial)))) |
1113 | 324 |
325 ;; Redirect events enqueued at this frame to the new frame. | |
326 ;; Is this a good idea? | |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
327 (redirect-frame-focus frame-initial-frame new) |
1113 | 328 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
329 ;; Finally, get rid of the old frame. |
4360
ea004f01b2d8
* frame.el (frame-notice-user-settings): If we had to create a new
Jim Blandy <jimb@redhat.com>
parents:
4305
diff
changeset
|
330 (delete-frame frame-initial-frame t)) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
331 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
332 ;; Otherwise, we don't need all that rigamarole; just apply |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
333 ;; the new parameters. |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
334 (let (newparms allparms tail) |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
335 (setq allparms (append initial-frame-alist |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
336 default-frame-alist)) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
337 (if (assq 'height frame-initial-geometry-arguments) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
338 (setq allparms (frame-delete-all 'height allparms))) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
339 (if (assq 'width frame-initial-geometry-arguments) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
340 (setq allparms (frame-delete-all 'width allparms))) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
341 (if (assq 'left frame-initial-geometry-arguments) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
342 (setq allparms (frame-delete-all 'left allparms))) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
343 (if (assq 'top frame-initial-geometry-arguments) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
344 (setq allparms (frame-delete-all 'top allparms))) |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
345 (setq tail allparms) |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
346 ;; Find just the parms that have changed since we first |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
347 ;; made this frame. Those are the ones actually set by |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
348 ;; the init file. For those parms whose values we already knew |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
349 ;; (such as those spec'd by command line options) |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
350 ;; it is undesirable to specify the parm again |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
351 ;; once the user has seen the frame and been able to alter it |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
352 ;; manually. |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
353 (while tail |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
354 (let (newval oldval) |
11485
72becffa4b21
(frame-notice-user-settings):
Richard M. Stallman <rms@gnu.org>
parents:
11039
diff
changeset
|
355 (setq oldval (assq (car (car tail)) |
72becffa4b21
(frame-notice-user-settings):
Richard M. Stallman <rms@gnu.org>
parents:
11039
diff
changeset
|
356 frame-initial-frame-alist)) |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
357 (setq newval (cdr (assq (car (car tail)) allparms))) |
11485
72becffa4b21
(frame-notice-user-settings):
Richard M. Stallman <rms@gnu.org>
parents:
11039
diff
changeset
|
358 (or (and oldval (eq (cdr oldval) newval)) |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
359 (setq newparms |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
360 (cons (cons (car (car tail)) newval) newparms)))) |
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
361 (setq tail (cdr tail))) |
8521
340ebdb14a0e
(frame-notice-user-settings): If we change the frame's font,
Richard M. Stallman <rms@gnu.org>
parents:
8453
diff
changeset
|
362 (setq newparms (nreverse newparms)) |
4305
a39dcf68a29c
(frame-notice-user-settings): Don't reapply a parm
Richard M. Stallman <rms@gnu.org>
parents:
3971
diff
changeset
|
363 (modify-frame-parameters frame-initial-frame |
8521
340ebdb14a0e
(frame-notice-user-settings): If we change the frame's font,
Richard M. Stallman <rms@gnu.org>
parents:
8453
diff
changeset
|
364 newparms) |
340ebdb14a0e
(frame-notice-user-settings): If we change the frame's font,
Richard M. Stallman <rms@gnu.org>
parents:
8453
diff
changeset
|
365 (if (assq 'font newparms) |
340ebdb14a0e
(frame-notice-user-settings): If we change the frame's font,
Richard M. Stallman <rms@gnu.org>
parents:
8453
diff
changeset
|
366 (frame-update-faces frame-initial-frame))))) |
394 | 367 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
368 ;; Restore the original buffer. |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
369 (set-buffer old-buffer) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
370 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
371 ;; Make sure the initial frame can be GC'd if it is ever deleted. |
2870
cd270fa53052
* frame.el (frame-notice-user-settings): Don't make
Jim Blandy <jimb@redhat.com>
parents:
2846
diff
changeset
|
372 ;; Make sure frame-notice-user-settings does nothing if called twice. |
cd270fa53052
* frame.el (frame-notice-user-settings): Don't make
Jim Blandy <jimb@redhat.com>
parents:
2846
diff
changeset
|
373 (setq frame-initial-frame nil))) |
394 | 374 |
12012
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
375 (defun make-initial-minibuffer-frame (display) |
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
376 (let ((parms (append minibuffer-frame-alist '((minibuffer . only))))) |
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
377 (if display |
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
378 (make-frame-on-display display parms) |
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
379 (make-frame parms)))) |
26aeed5ef544
(make-initial-minibuffer-frame): New function.
Karl Heuer <kwzh@gnu.org>
parents:
11485
diff
changeset
|
380 |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
381 ;; Delete from ALIST all elements whose car is KEY. |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
382 ;; Return the modified alist. |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
383 (defun frame-delete-all (key alist) |
8453
32880f6bd87a
(frame-delete-all): Copy the whole alist first.
Richard M. Stallman <rms@gnu.org>
parents:
8424
diff
changeset
|
384 (setq alist (copy-sequence alist)) |
8424
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
385 (let ((tail alist)) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
386 (while tail |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
387 (if (eq (car (car tail)) key) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
388 (setq alist (delq (car tail) alist))) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
389 (setq tail (cdr tail))) |
af4e01d24892
(frame-delete-all): New function.
Richard M. Stallman <rms@gnu.org>
parents:
8129
diff
changeset
|
390 alist)) |
394 | 391 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
392 ;;;; Creation of additional frames, and other frame miscellanea |
394 | 393 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
394 ;;; Return some frame other than the current frame, creating one if |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3554
diff
changeset
|
395 ;;; necessary. Note that the minibuffer frame, if separate, is not |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
396 ;;; considered (see next-frame). |
827 | 397 (defun get-other-frame () |
777 | 398 (let ((s (if (equal (next-frame (selected-frame)) (selected-frame)) |
7322
1f3536445289
(frame-notice-user-settings): Discard `reverse' when
Richard M. Stallman <rms@gnu.org>
parents:
7309
diff
changeset
|
399 (make-frame) |
777 | 400 (next-frame (selected-frame))))) |
394 | 401 s)) |
402 | |
777 | 403 (defun next-multiframe-window () |
404 "Select the next window, regardless of which frame it is on." | |
394 | 405 (interactive) |
406 (select-window (next-window (selected-window) | |
407 (> (minibuffer-depth) 0) | |
408 t))) | |
409 | |
777 | 410 (defun previous-multiframe-window () |
411 "Select the previous window, regardless of which frame it is on." | |
394 | 412 (interactive) |
413 (select-window (previous-window (selected-window) | |
414 (> (minibuffer-depth) 0) | |
415 t))) | |
416 | |
9687
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
417 (defun make-frame-on-display (display &optional parameters) |
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
418 "Make a frame on display DISPLAY. |
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
419 The optional second argument PARAMETERS specifies additional frame parameters." |
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
420 (interactive "sMake frame on display: ") |
22232
96217e8a9b7f
(make-frame-on-display): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22224
diff
changeset
|
421 (or (string-match "\\`[^:]*:[0-9]+\\(\\.[0-9]+\\)?\\'" display) |
96217e8a9b7f
(make-frame-on-display): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22224
diff
changeset
|
422 (error "Invalid display, not HOST:SERVER or HOST:SERVER.SCREEN")) |
9687
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
423 (make-frame (cons (cons 'display display) parameters))) |
1048e2d032e6
(make-frame-on-display): New function.
Richard M. Stallman <rms@gnu.org>
parents:
9175
diff
changeset
|
424 |
15347
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
425 (defun make-frame-command () |
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
426 "Make a new frame, and select it if the terminal displays only one frame." |
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
427 (interactive) |
15364
a4e1db62f693
(make-frame-command): Treat msdos like no window system.
Richard M. Stallman <rms@gnu.org>
parents:
15347
diff
changeset
|
428 (if (and window-system (not (eq window-system 'pc))) |
15347
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
429 (make-frame) |
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
430 (select-frame (make-frame)))) |
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
431 |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
432 (defvar before-make-frame-hook nil |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
433 "Functions to run before a frame is created.") |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
434 |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
435 (defvar after-make-frame-functions nil |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
436 "Functions to run after a frame is created. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
437 The functions are run with one arg, the newly created frame.") |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
438 |
2246
1f0d48f7e583
(make-frame): Renamed from new-frame.
Richard M. Stallman <rms@gnu.org>
parents:
2202
diff
changeset
|
439 ;; Alias, kept temporarily. |
2571
b65cf676a09b
All fsets changed to defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2246
diff
changeset
|
440 (defalias 'new-frame 'make-frame) |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
441 |
2246
1f0d48f7e583
(make-frame): Renamed from new-frame.
Richard M. Stallman <rms@gnu.org>
parents:
2202
diff
changeset
|
442 (defun make-frame (&optional parameters) |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
443 "Return a newly created frame displaying the current buffer. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
444 Optional argument PARAMETERS is an alist of parameters for the new frame. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
445 Each element of PARAMETERS should have the form (NAME . VALUE), for example: |
10574 | 446 |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
447 (name . STRING) The frame should be named STRING. |
542 | 448 |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
449 (width . NUMBER) The frame should be NUMBER characters in width. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
450 (height . NUMBER) The frame should be NUMBER text lines high. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
451 |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
452 You cannot specify either `width' or `height', you must use neither or both. |
542 | 453 |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
454 (minibuffer . t) The frame should have a minibuffer. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
455 (minibuffer . nil) The frame should have no minibuffer. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
456 (minibuffer . only) The frame should contain only a minibuffer. |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
457 (minibuffer . WINDOW) The frame should use WINDOW as its minibuffer window. |
542 | 458 |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
459 Before the frame is created (via `frame-creation-function'), functions on the |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
460 hook `before-make-frame-hook' are run. After the frame is created, functions |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
461 on `after-make-frame-functions' are run with one arg, the newly created frame." |
394 | 462 (interactive) |
17163
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
463 (run-hooks 'before-make-frame-hook) |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
464 (let ((frame (funcall frame-creation-function parameters))) |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
465 (run-hook-with-args 'after-make-frame-functions frame) |
a63a326604ae
defvar before- and after- make frame vars; use properly in make-frame.
Simon Marshall <simon@gnu.org>
parents:
16963
diff
changeset
|
466 frame)) |
394 | 467 |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
468 (defun filtered-frame-list (predicate) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
469 "Return a list of all live frames which satisfy PREDICATE." |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
470 (let ((frames (frame-list)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
471 good-frames) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
472 (while (consp frames) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
473 (if (funcall predicate (car frames)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
474 (setq good-frames (cons (car frames) good-frames))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
475 (setq frames (cdr frames))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
476 good-frames)) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
477 |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
478 (defun minibuffer-frame-list () |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
479 "Return a list of all frames with their own minibuffers." |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
480 (filtered-frame-list |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
481 (function (lambda (frame) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
482 (eq frame (window-frame (minibuffer-window frame))))))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
483 |
3971
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
484 (defun frame-remove-geometry-params (param-list) |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
485 "Return the parameter list PARAM-LIST, but with geometry specs removed. |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
486 This deletes all bindings in PARAM-LIST for `top', `left', `width', |
7343
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
487 `height', `user-size' and `user-position' parameters. |
3971
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
488 Emacs uses this to avoid overriding explicit moves and resizings from |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
489 the user during startup." |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
490 (setq param-list (cons nil param-list)) |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
491 (let ((tail param-list)) |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
492 (while (consp (cdr tail)) |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
493 (if (and (consp (car (cdr tail))) |
7343
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
494 (memq (car (car (cdr tail))) |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
495 '(height width top left user-position user-size))) |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
496 (progn |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
497 (setq frame-initial-geometry-arguments |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
498 (cons (car (cdr tail)) frame-initial-geometry-arguments)) |
81f9ad98c323
(frame-notice-user-settings): When replacing the first
Richard M. Stallman <rms@gnu.org>
parents:
7322
diff
changeset
|
499 (setcdr tail (cdr (cdr tail)))) |
3971
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
500 (setq tail (cdr tail))))) |
7436
b20221c93fbb
(frame-remove-geometry-params): Reverse the computed list, to preserve the
Karl Heuer <kwzh@gnu.org>
parents:
7357
diff
changeset
|
501 (setq frame-initial-geometry-arguments |
b20221c93fbb
(frame-remove-geometry-params): Reverse the computed list, to preserve the
Karl Heuer <kwzh@gnu.org>
parents:
7357
diff
changeset
|
502 (nreverse frame-initial-geometry-arguments)) |
3971
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
503 (cdr param-list)) |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
504 |
6e7afc0a7fbc
* frame.el (frame-remove-geometry-params): New function.
Jim Blandy <jimb@redhat.com>
parents:
3966
diff
changeset
|
505 |
21215
2702850b72d6
(focus-follows-mouse): Make it defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
21214
diff
changeset
|
506 (defcustom focus-follows-mouse t |
2702850b72d6
(focus-follows-mouse): Make it defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
21214
diff
changeset
|
507 "*Non-nil if window system changes focus when you move the mouse." |
2702850b72d6
(focus-follows-mouse): Make it defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
21214
diff
changeset
|
508 :type 'boolean |
21669
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21216
diff
changeset
|
509 :group 'frames |
9861518505cb
*** empty log message ***
Dan Nicolaescu <done@ece.arizona.edu>
parents:
21216
diff
changeset
|
510 :version "20.3") |
21214
7a873226ee07
(focus-follows-mouse): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20386
diff
changeset
|
511 |
4425
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
512 (defun other-frame (arg) |
4431
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
513 "Select the ARG'th different visible frame, and raise it. |
4425
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
514 All frames are arranged in a cyclic order. |
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
515 This command selects the frame ARG steps away in that order. |
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
516 A negative ARG moves in the opposite order." |
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
517 (interactive "p") |
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
518 (let ((frame (selected-frame))) |
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
519 (while (> arg 0) |
4431
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
520 (setq frame (next-frame frame)) |
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
521 (while (not (eq (frame-visible-p frame) t)) |
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
522 (setq frame (next-frame frame))) |
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
523 (setq arg (1- arg))) |
4425
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
524 (while (< arg 0) |
4431
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
525 (setq frame (previous-frame frame)) |
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
526 (while (not (eq (frame-visible-p frame) t)) |
2fe6adb8a82f
(other-frame): Skip iconified and invisible frames.
Roland McGrath <roland@gnu.org>
parents:
4425
diff
changeset
|
527 (setq frame (previous-frame frame))) |
4553
ceb140c16ad2
(other-frame): Fix error in loop counting.
Richard M. Stallman <rms@gnu.org>
parents:
4431
diff
changeset
|
528 (setq arg (1+ arg))) |
4425
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
529 (raise-frame frame) |
4784
8878c40bc7bd
(other-frame): Warp the mouse so that the other
Richard M. Stallman <rms@gnu.org>
parents:
4670
diff
changeset
|
530 (select-frame frame) |
19681
424f0b44e7a5
(other-frame) [windows-nt]: Use w32-focus-frame.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18892
diff
changeset
|
531 ;; Ensure, if possible, that frame gets input focus. |
424f0b44e7a5
(other-frame) [windows-nt]: Use w32-focus-frame.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18892
diff
changeset
|
532 (if (eq window-system 'w32) |
424f0b44e7a5
(other-frame) [windows-nt]: Use w32-focus-frame.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18892
diff
changeset
|
533 (w32-focus-frame frame) |
21216
54c89f745c5d
(other-frame): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
21215
diff
changeset
|
534 (when focus-follows-mouse |
21214
7a873226ee07
(focus-follows-mouse): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
20386
diff
changeset
|
535 (set-mouse-position (selected-frame) (1- (frame-width)) 0))))) |
20386
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
536 |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
537 (defun make-frame-names-alist () |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
538 (let* ((current-frame (selected-frame)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
539 (falist |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
540 (cons |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
541 (cons (frame-parameter current-frame 'name) current-frame) nil)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
542 (frame (next-frame nil t))) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
543 (while (not (eq frame current-frame)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
544 (progn |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
545 (setq falist (cons (cons (frame-parameter frame 'name) frame) falist)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
546 (setq frame (next-frame frame t)))) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
547 falist)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
548 |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
549 (defvar frame-name-history nil) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
550 (defun select-frame-by-name (name) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
551 "Select the frame whose name is NAME and raise it. |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
552 If there is no frame by that name, signal an error." |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
553 (interactive |
21730
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
554 (let* ((frame-names-alist (make-frame-names-alist)) |
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
555 (default (car (car frame-names-alist))) |
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
556 (input (completing-read |
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
557 (format "Select Frame (default %s): " default) |
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
558 frame-names-alist nil t nil 'frame-name-history))) |
20386
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
559 (if (= (length input) 0) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
560 (list default) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
561 (list input)))) |
21730
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
562 (let* ((frame-names-alist (make-frame-names-alist)) |
efa1c31f068c
(frame-name-alist): Remove this variable.
Richard M. Stallman <rms@gnu.org>
parents:
21669
diff
changeset
|
563 (frame (cdr (assoc name frame-names-alist)))) |
20386
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
564 (or frame |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
565 (error "There is no frame named `%s'" name)) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
566 (make-frame-visible frame) |
25ca60b3ca09
(make-frame-names-alist, select-frame-by-name): New
Eli Zaretskii <eliz@gnu.org>
parents:
20281
diff
changeset
|
567 (raise-frame frame) |
24207
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
568 (select-frame frame) |
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
569 ;; Ensure, if possible, that frame gets input focus. |
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
570 (if (eq window-system 'w32) |
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
571 (w32-focus-frame frame) |
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
572 (when focus-follows-mouse |
69b4c339845d
(select-frame-by-name): Obey focus-follows-mouse.
Andrew Innes <andrewi@gnu.org>
parents:
23763
diff
changeset
|
573 (set-mouse-position (selected-frame) (1- (frame-width)) 0))))) |
394 | 574 |
777 | 575 ;;;; Frame configurations |
756 | 576 |
777 | 577 (defun current-frame-configuration () |
578 "Return a list describing the positions and states of all frames. | |
2202
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
579 Its car is `frame-configuration'. |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
580 Each element of the cdr is a list of the form (FRAME ALIST WINDOW-CONFIG), |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
581 where |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
582 FRAME is a frame object, |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
583 ALIST is an association list specifying some of FRAME's parameters, and |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
584 WINDOW-CONFIG is a window configuration object for FRAME." |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
585 (cons 'frame-configuration |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
586 (mapcar (function |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
587 (lambda (frame) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
588 (list frame |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
589 (frame-parameters frame) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
590 (current-window-configuration frame)))) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
591 (frame-list)))) |
756 | 592 |
4670
e39967101d8b
(set-frame-configuration): Take new optional arg NODELETE; if non-nil,
Roland McGrath <roland@gnu.org>
parents:
4625
diff
changeset
|
593 (defun set-frame-configuration (configuration &optional nodelete) |
777 | 594 "Restore the frames to the state described by CONFIGURATION. |
595 Each frame listed in CONFIGURATION has its position, size, window | |
4670
e39967101d8b
(set-frame-configuration): Take new optional arg NODELETE; if non-nil,
Roland McGrath <roland@gnu.org>
parents:
4625
diff
changeset
|
596 configuration, and other parameters set as specified in CONFIGURATION. |
4919
3963d8a9f342
(set-frame-configuration): If NODELETE, make the unwanted frames invisible.
Richard M. Stallman <rms@gnu.org>
parents:
4911
diff
changeset
|
597 Ordinarily, this function deletes all existing frames not |
3963d8a9f342
(set-frame-configuration): If NODELETE, make the unwanted frames invisible.
Richard M. Stallman <rms@gnu.org>
parents:
4911
diff
changeset
|
598 listed in CONFIGURATION. But if optional second argument NODELETE |
4930
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
599 is given and non-nil, the unwanted frames are iconified instead." |
2202
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
600 (or (frame-configuration-p configuration) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
601 (signal 'wrong-type-argument |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
602 (list 'frame-configuration-p configuration))) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
603 (let ((config-alist (cdr configuration)) |
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
604 frames-to-delete) |
756 | 605 (mapcar (function |
777 | 606 (lambda (frame) |
2202
081afcef5e85
Make frame configurations start with a distinctive symbol.
Jim Blandy <jimb@redhat.com>
parents:
2069
diff
changeset
|
607 (let ((parameters (assq frame config-alist))) |
756 | 608 (if parameters |
609 (progn | |
3764
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
610 (modify-frame-parameters |
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
611 frame |
10557 | 612 ;; Since we can't set a frame's minibuffer status, |
3764
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
613 ;; we might as well omit the parameter altogether. |
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
614 (let* ((parms (nth 1 parameters)) |
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
615 (mini (assq 'minibuffer parms))) |
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
616 (if mini (setq parms (delq mini parms))) |
d965878f294f
* frame.el (set-frame-configuration): Don't try to set a frame's
Jim Blandy <jimb@redhat.com>
parents:
3647
diff
changeset
|
617 parms)) |
756 | 618 (set-window-configuration (nth 2 parameters))) |
777 | 619 (setq frames-to-delete (cons frame frames-to-delete)))))) |
620 (frame-list)) | |
4919
3963d8a9f342
(set-frame-configuration): If NODELETE, make the unwanted frames invisible.
Richard M. Stallman <rms@gnu.org>
parents:
4911
diff
changeset
|
621 (if nodelete |
4930
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
622 ;; Note: making frames invisible here was tried |
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
623 ;; but led to some strange behavior--each time the frame |
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
624 ;; was made visible again, the window manager asked afresh |
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
625 ;; for where to put it. |
04dee67f86cf
(set-frame-configuration): Iconify frames
Richard M. Stallman <rms@gnu.org>
parents:
4919
diff
changeset
|
626 (mapcar 'iconify-frame frames-to-delete) |
4919
3963d8a9f342
(set-frame-configuration): If NODELETE, make the unwanted frames invisible.
Richard M. Stallman <rms@gnu.org>
parents:
4911
diff
changeset
|
627 (mapcar 'delete-frame frames-to-delete)))) |
394 | 628 |
777 | 629 ;;;; Convenience functions for accessing and interactively changing |
630 ;;;; frame parameters. | |
394 | 631 |
17357
dd0216ff2358
(frame-parameter): New function.
Richard M. Stallman <rms@gnu.org>
parents:
17342
diff
changeset
|
632 (defun frame-parameter (frame parameter) |
17454
b07426c50d99
doc-fix to be compatible with other frame- fns.
Simon Marshall <simon@gnu.org>
parents:
17444
diff
changeset
|
633 "Return FRAME's value for parameter PARAMETER. |
23763
63f667e05ff0
(frame-parameter): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
23745
diff
changeset
|
634 If FRAME is nil, describe the currently selected frame." |
17454
b07426c50d99
doc-fix to be compatible with other frame- fns.
Simon Marshall <simon@gnu.org>
parents:
17444
diff
changeset
|
635 (cdr (assq parameter (frame-parameters frame)))) |
17357
dd0216ff2358
(frame-parameter): New function.
Richard M. Stallman <rms@gnu.org>
parents:
17342
diff
changeset
|
636 |
826 | 637 (defun frame-height (&optional frame) |
777 | 638 "Return number of lines available for display on FRAME. |
639 If FRAME is omitted, describe the currently selected frame." | |
826 | 640 (cdr (assq 'height (frame-parameters frame)))) |
777 | 641 |
642 (defun frame-width (&optional frame) | |
643 "Return number of columns available for display on FRAME. | |
644 If FRAME is omitted, describe the currently selected frame." | |
826 | 645 (cdr (assq 'width (frame-parameters frame)))) |
777 | 646 |
16963
7daaf9702c47
(set-frame-font): Renamed from set-default-font,
Richard M. Stallman <rms@gnu.org>
parents:
16516
diff
changeset
|
647 (defalias 'set-default-font 'set-frame-font) |
7daaf9702c47
(set-frame-font): Renamed from set-default-font,
Richard M. Stallman <rms@gnu.org>
parents:
16516
diff
changeset
|
648 (defun set-frame-font (font-name) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
649 "Set the font of the selected frame to FONT. |
16047 | 650 When called interactively, prompt for the name of the font to use. |
651 To get the frame's current default font, use `frame-parameters'." | |
394 | 652 (interactive "sFont name: ") |
777 | 653 (modify-frame-parameters (selected-frame) |
7020
c7525f1cfaba
(set-default-font): Call frame-update-faces.
Richard M. Stallman <rms@gnu.org>
parents:
4930
diff
changeset
|
654 (list (cons 'font font-name))) |
c7525f1cfaba
(set-default-font): Call frame-update-faces.
Richard M. Stallman <rms@gnu.org>
parents:
4930
diff
changeset
|
655 ;; Update faces that want a bold or italic version of the default font. |
c7525f1cfaba
(set-default-font): Call frame-update-faces.
Richard M. Stallman <rms@gnu.org>
parents:
4930
diff
changeset
|
656 (frame-update-faces (selected-frame))) |
394 | 657 |
1881
436edc3e74f6
(frame-initialize): Fix error syntax.
Richard M. Stallman <rms@gnu.org>
parents:
1863
diff
changeset
|
658 (defun set-background-color (color-name) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
659 "Set the background color of the selected frame to COLOR. |
16047 | 660 When called interactively, prompt for the name of the color to use. |
661 To get the frame's current background color, use `frame-parameters'." | |
394 | 662 (interactive "sColor: ") |
777 | 663 (modify-frame-parameters (selected-frame) |
10192
dd28f1cd68d2
(set-background-color, set-foreground-color):
Richard M. Stallman <rms@gnu.org>
parents:
9737
diff
changeset
|
664 (list (cons 'background-color color-name))) |
dd28f1cd68d2
(set-background-color, set-foreground-color):
Richard M. Stallman <rms@gnu.org>
parents:
9737
diff
changeset
|
665 (frame-update-face-colors (selected-frame))) |
394 | 666 |
1881
436edc3e74f6
(frame-initialize): Fix error syntax.
Richard M. Stallman <rms@gnu.org>
parents:
1863
diff
changeset
|
667 (defun set-foreground-color (color-name) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
668 "Set the foreground color of the selected frame to COLOR. |
16047 | 669 When called interactively, prompt for the name of the color to use. |
670 To get the frame's current foreground color, use `frame-parameters'." | |
394 | 671 (interactive "sColor: ") |
777 | 672 (modify-frame-parameters (selected-frame) |
10192
dd28f1cd68d2
(set-background-color, set-foreground-color):
Richard M. Stallman <rms@gnu.org>
parents:
9737
diff
changeset
|
673 (list (cons 'foreground-color color-name))) |
dd28f1cd68d2
(set-background-color, set-foreground-color):
Richard M. Stallman <rms@gnu.org>
parents:
9737
diff
changeset
|
674 (frame-update-face-colors (selected-frame))) |
394 | 675 |
676 (defun set-cursor-color (color-name) | |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
677 "Set the text cursor color of the selected frame to COLOR. |
16047 | 678 When called interactively, prompt for the name of the color to use. |
679 To get the frame's current cursor color, use `frame-parameters'." | |
394 | 680 (interactive "sColor: ") |
777 | 681 (modify-frame-parameters (selected-frame) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
682 (list (cons 'cursor-color color-name)))) |
394 | 683 |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
684 (defun set-mouse-color (color-name) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
685 "Set the color of the mouse pointer of the selected frame to COLOR. |
16047 | 686 When called interactively, prompt for the name of the color to use. |
687 To get the frame's current mouse color, use `frame-parameters'." | |
394 | 688 (interactive "sColor: ") |
777 | 689 (modify-frame-parameters (selected-frame) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
690 (list (cons 'mouse-color color-name)))) |
394 | 691 |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
692 (defun set-border-color (color-name) |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
693 "Set the color of the border of the selected frame to COLOR. |
16047 | 694 When called interactively, prompt for the name of the color to use. |
695 To get the frame's current border color, use `frame-parameters'." | |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
696 (interactive "sColor: ") |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
697 (modify-frame-parameters (selected-frame) |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
698 (list (cons 'border-color color-name)))) |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
699 |
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
700 (defun auto-raise-mode (arg) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
701 "Toggle whether or not the selected frame should auto-raise. |
8072
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
702 With arg, turn auto-raise mode on if and only if arg is positive. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
703 Note that this controls Emacs's own auto-raise feature. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
704 Some window managers allow you to enable auto-raise for certain windows. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
705 You can use that for Emacs windows if you wish, but if you do, |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
706 that is beyond the control of Emacs and this command has no effect on it." |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
707 (interactive "P") |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
708 (if (null arg) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
709 (setq arg |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
710 (if (cdr (assq 'auto-raise (frame-parameters (selected-frame)))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
711 -1 1))) |
777 | 712 (modify-frame-parameters (selected-frame) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
713 (list (cons 'auto-raise (> arg 0))))) |
394 | 714 |
1974
94e4f619080b
These changes were actually made by Richard; I stole his RCS lock.
Jim Blandy <jimb@redhat.com>
parents:
1881
diff
changeset
|
715 (defun auto-lower-mode (arg) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
716 "Toggle whether or not the selected frame should auto-lower. |
8072
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
717 With arg, turn auto-lower mode on if and only if arg is positive. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
718 Note that this controls Emacs's own auto-lower feature. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
719 Some window managers allow you to enable auto-lower for certain windows. |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
720 You can use that for Emacs windows if you wish, but if you do, |
48c81a052cea
(auto-lower-mode, auto-raise-mode): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
8056
diff
changeset
|
721 that is beyond the control of Emacs and this command has no effect on it." |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
722 (interactive "P") |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
723 (if (null arg) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
724 (setq arg |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
725 (if (cdr (assq 'auto-lower (frame-parameters (selected-frame)))) |
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
726 -1 1))) |
777 | 727 (modify-frame-parameters (selected-frame) |
1863
6f55c76b5789
* frame.el: Clean up initialization code.
Jim Blandy <jimb@redhat.com>
parents:
1821
diff
changeset
|
728 (list (cons 'auto-lower (> arg 0))))) |
20281
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
729 (defun set-frame-name (name) |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
730 "Set the name of the selected frame to NAME. |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
731 When called interactively, prompt for the name of the frame. |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
732 The frame name is displayed on the modeline if the terminal displays only |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
733 one frame, otherwise the name is displayed on the frame's caption bar." |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
734 (interactive "sFrame name: ") |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
735 (modify-frame-parameters (selected-frame) |
799de2d79c64
(set-frame-name): New function.
Eli Zaretskii <eliz@gnu.org>
parents:
19681
diff
changeset
|
736 (list (cons 'name name)))) |
394 | 737 |
777 | 738 ;;;; Aliases for backward compatibility with Emacs 18. |
2571
b65cf676a09b
All fsets changed to defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2246
diff
changeset
|
739 (defalias 'screen-height 'frame-height) |
b65cf676a09b
All fsets changed to defaliases.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2246
diff
changeset
|
740 (defalias 'screen-width 'frame-width) |
958 | 741 |
742 (defun set-screen-width (cols &optional pretend) | |
743 "Obsolete function to change the size of the screen to COLS columns.\n\ | |
744 Optional second arg non-nil means that redisplay should use COLS columns\n\ | |
745 but that the idea of the actual width of the frame should not be changed.\n\ | |
746 This function is provided only for compatibility with Emacs 18; new code\n\ | |
1475 | 747 should use `set-frame-width instead'." |
958 | 748 (set-frame-width (selected-frame) cols pretend)) |
749 | |
750 (defun set-screen-height (lines &optional pretend) | |
751 "Obsolete function to change the height of the screen to LINES lines.\n\ | |
752 Optional second arg non-nil means that redisplay should use LINES lines\n\ | |
753 but that the idea of the actual height of the screen should not be changed.\n\ | |
754 This function is provided only for compatibility with Emacs 18; new code\n\ | |
17239
368bfa70d822
(set-screen-height): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
17163
diff
changeset
|
755 should use `set-frame-height' instead." |
958 | 756 (set-frame-height (selected-frame) lines pretend)) |
757 | |
758 (make-obsolete 'screen-height 'frame-height) | |
759 (make-obsolete 'screen-width 'frame-width) | |
760 (make-obsolete 'set-screen-width 'set-frame-width) | |
761 (make-obsolete 'set-screen-height 'set-frame-height) | |
777 | 762 |
763 | |
394 | 764 ;;;; Key bindings |
765 | |
15347
3885819ed860
(make-frame-command): New function.
Richard M. Stallman <rms@gnu.org>
parents:
14701
diff
changeset
|
766 (define-key ctl-x-5-map "2" 'make-frame-command) |
777 | 767 (define-key ctl-x-5-map "0" 'delete-frame) |
4425
1b48826df9cb
(other-frame): New function, analogous to other-window.
Roland McGrath <roland@gnu.org>
parents:
4360
diff
changeset
|
768 (define-key ctl-x-5-map "o" 'other-frame) |
584 | 769 |
777 | 770 (provide 'frame) |
658
7cbd4fcd8b0f
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
771 |
777 | 772 ;;; frame.el ends here |