Mercurial > hg > xemacs-beta
comparison man/lispref/frames.texi @ 54:05472e90ae02 r19-16-pre2
Import from CVS: tag r19-16-pre2
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:57:55 +0200 |
parents | ac2d302a0011 |
children | 7df0dd720c89 |
comparison
equal
deleted
inserted
replaced
53:875393c1a535 | 54:05472e90ae02 |
---|---|
7 @node Frames, Consoles and Devices, Windows, Top | 7 @node Frames, Consoles and Devices, Windows, Top |
8 @chapter Frames | 8 @chapter Frames |
9 @cindex frame | 9 @cindex frame |
10 | 10 |
11 A @var{frame} is a rectangle on the screen that contains one or more | 11 A @var{frame} is a rectangle on the screen that contains one or more |
12 Emacs windows. A frame initially contains a single main window (plus | 12 XEmacs windows. A frame initially contains a single main window (plus |
13 perhaps a minibuffer window), which you can subdivide vertically or | 13 perhaps a minibuffer window), which you can subdivide vertically or |
14 horizontally into smaller windows. | 14 horizontally into smaller windows. |
15 | 15 |
16 @cindex terminal frame | 16 @cindex terminal frame |
17 @cindex X window frame | 17 @cindex X window frame |
29 @code{nil} otherwise. | 29 @code{nil} otherwise. |
30 @end defun | 30 @end defun |
31 | 31 |
32 @menu | 32 @menu |
33 * Creating Frames:: Creating additional frames. | 33 * Creating Frames:: Creating additional frames. |
34 * Frame Parameters:: Controlling frame size, position, font, etc. | 34 * Frame Properties:: Controlling frame size, position, font, etc. |
35 * Frame Titles:: Automatic updating of frame titles. | 35 * Frame Titles:: Automatic updating of frame titles. |
36 * Deleting Frames:: Frames last until explicitly deleted. | 36 * Deleting Frames:: Frames last until explicitly deleted. |
37 * Finding All Frames:: How to examine all existing frames. | 37 * Finding All Frames:: How to examine all existing frames. |
38 * Frames and Windows:: A frame contains windows; | 38 * Frames and Windows:: A frame contains windows; |
39 display of text always works through windows. | 39 display of text always works through windows. |
51 @node Creating Frames | 51 @node Creating Frames |
52 @section Creating Frames | 52 @section Creating Frames |
53 | 53 |
54 To create a new frame, call the function @code{make-frame}. | 54 To create a new frame, call the function @code{make-frame}. |
55 | 55 |
56 @defun make-frame &optional alist device | 56 @defun make-frame &optional props device |
57 This function creates a new frame on @var{device}, if @var{device} | 57 This function creates a new frame on @var{device}, if @var{device} |
58 permits creation of frames. (An X server does; an ordinary terminal | 58 permits creation of frames. (An X server does; an ordinary terminal |
59 does not.) @var{device} defaults to the selected device if omitted. | 59 does not (yet).) @var{device} defaults to the selected device if omitted. |
60 @xref{Consoles and Devices}. | 60 @xref{Consoles and Devices}. |
61 | 61 |
62 The argument is an alist specifying frame parameters. Any parameters | 62 The argument @var{props} is a property list (a list of alternating |
63 not mentioned in @var{alist} default according to the value of the | 63 keyword-value specifications) of properties for the new frame. (An alist |
64 variable @code{default-frame-alist}. For X devices, parameters not | 64 is accepted for backward compatibility but should not be passed in.) Any |
65 specified in @code{default-frame-alist} default in turn from | 65 properties not mentioned in @var{props} default according to the value |
66 @code{default-x-frame-alist} and, if not specified there, from the X | 66 of the variable @code{default-frame-plist}. For X devices, properties |
67 resources. For TTY devices, @code{default-tty-frame-alist} is | 67 not specified in @code{default-frame-plist} default in turn from |
68 consulted as well as @code{default-frame-alist}. | 68 @code{default-x-frame-plist} and, if not specified there, from the X |
69 | 69 resources. For TTY devices, @code{default-tty-frame-plist} is consulted |
70 The set of possible parameters depends in principle on what kind of | 70 as well as @code{default-frame-plist}. |
71 | |
72 The set of possible properties depends in principle on what kind of | |
71 window system XEmacs uses to display its frames. @xref{X Frame | 73 window system XEmacs uses to display its frames. @xref{X Frame |
72 Parameters}, for documentation of individual parameters you can specify | 74 Properties}, for documentation of individual properties you can specify |
73 when creating an X window frame. | 75 when creating an X window frame. |
74 @end defun | 76 @end defun |
75 | 77 |
76 @node Frame Parameters | 78 @node Frame Properties |
77 @section Frame Parameters | 79 @section Frame Properties |
78 | 80 |
79 A frame has many parameters that control its appearance and behavior. | 81 A frame has many properties that control its appearance and behavior. |
80 Just what parameters a frame has depends on what display mechanism it | 82 Just what properties a frame has depends on which display mechanism it |
81 uses. | 83 uses. |
82 | 84 |
83 Frame parameters exist for the sake of window systems. A terminal frame | 85 Frame properties exist for the sake of window systems. A terminal frame |
84 has a few parameters, mostly for compatibility's sake; only the height, | 86 has few properties, mostly for compatibility's sake; only the height, |
85 width and @code{buffer-predicate} parameters really do something. | 87 width and @code{buffer-predicate} properties really do something. |
86 | 88 |
87 @menu | 89 @menu |
88 * Parameter Access:: How to change a frame's parameters. | 90 * Property Access:: How to change a frame's properties. |
89 * Initial Parameters:: Specifying frame parameters when you make a frame. | 91 * Initial Properties:: Specifying frame properties when you make a frame. |
90 * X Frame Parameters:: List of frame parameters. | 92 * X Frame Properties:: List of frame properties. |
91 * Size and Position:: Changing the size and position of a frame. | 93 * Size and Position:: Changing the size and position of a frame. |
92 * Frame Name:: The name of a frame (as opposed to its title). | 94 * Frame Name:: The name of a frame (as opposed to its title). |
93 @end menu | 95 @end menu |
94 | 96 |
95 @node Parameter Access | 97 @node Property Access |
96 @subsection Access to Frame Parameters | 98 @subsection Access to Frame Properties |
97 | 99 |
98 These functions let you read and change the parameter values of a | 100 These functions let you read and change the properties of a frame. |
99 frame. | 101 |
100 | 102 @defun frame-properties &optional frame |
101 @defun frame-parameters frame | 103 This function returns a plist listing all the properties of @var{frame} |
102 The function @code{frame-parameters} returns an alist listing all the | 104 and their values. |
103 parameters of @var{frame} and their values. | 105 @end defun |
104 @end defun | 106 |
105 | 107 @defun frame-property frame property &optional default |
106 @defun modify-frame-parameters frame alist | 108 This function returns @var{frame}'s value for the property |
107 This function alters the parameters of frame @var{frame} based on the | 109 @var{property}. |
108 elements of @var{alist}. Each element of @var{alist} has the form | 110 @end defun |
109 @code{(@var{parm} . @var{value})}, where @var{parm} is a symbol naming a | 111 |
110 parameter. If you don't mention a parameter in @var{alist}, its value | 112 @defun set-frame-properties frame plist |
111 doesn't change. | 113 This function alters the properties of frame @var{frame} based on the |
112 @end defun | 114 elements of property list @var{plist}. If you don't mention a property |
113 | 115 in @var{plist}, its value doesn't change. |
114 @node Initial Parameters | 116 @end defun |
115 @subsection Initial Frame Parameters | 117 |
116 | 118 @defun set-frame-property frame prop val |
117 You can specify the parameters for the initial startup frame | 119 This function sets the property @var{prop} of frame @var{frame} to the |
118 by setting @code{initial-frame-alist} in your @file{.emacs} file. | 120 value @var{val}. |
119 | 121 @end defun |
120 @defvar initial-frame-alist | 122 |
121 This variable's value is an alist of parameter values used when creating | 123 @node Initial Properties |
122 the initial X window frame. Each element has the form: | 124 @subsection Initial Frame Properties |
123 | 125 |
124 @example | 126 You can specify the properties for the initial startup frame by setting |
125 (@var{parameter} . @var{value}) | 127 @code{initial-frame-plist} in your @file{.emacs} file. |
126 @end example | 128 |
127 | 129 @defvar initial-frame-plist |
128 Emacs creates the initial frame before it reads your @file{~/.emacs} | 130 This variable's value is a plist of alternating property-value pairs |
129 file. After reading that file, Emacs checks @code{initial-frame-alist}, | 131 used when creating the initial X window frame. |
130 and applies the parameter settings in the altered value to the already | 132 |
133 XEmacs creates the initial frame before it reads your @file{~/.emacs} | |
134 file. After reading that file, XEmacs checks @code{initial-frame-plist}, | |
135 and applies the property settings in the altered value to the already | |
131 created initial frame. | 136 created initial frame. |
132 | 137 |
133 If these settings affect the frame geometry and appearance, you'll see | 138 If these settings affect the frame geometry and appearance, you'll see |
134 the frame appear with the wrong ones and then change to the specified | 139 the frame appear with the wrong ones and then change to the specified |
135 ones. If that bothers you, you can specify the same geometry and | 140 ones. If that bothers you, you can specify the same geometry and |
137 created. @xref{Resources X,, X Resources, emacs, The XEmacs User's Manual}. | 142 created. @xref{Resources X,, X Resources, emacs, The XEmacs User's Manual}. |
138 | 143 |
139 X resource settings typically apply to all frames. If you want to | 144 X resource settings typically apply to all frames. If you want to |
140 specify some X resources solely for the sake of the initial frame, and | 145 specify some X resources solely for the sake of the initial frame, and |
141 you don't want them to apply to subsequent frames, here's how to achieve | 146 you don't want them to apply to subsequent frames, here's how to achieve |
142 this. Specify parameters in @code{default-frame-alist} to override the | 147 this: specify properties in @code{default-frame-plist} to override the X |
143 X resources for subsequent frames; then, to prevent these from affecting | 148 resources for subsequent frames; then, to prevent these from affecting |
144 the initial frame, specify the same parameters in | 149 the initial frame, specify the same properties in |
145 @code{initial-frame-alist} with values that match the X resources. | 150 @code{initial-frame-plist} with values that match the X resources. |
146 @end defvar | 151 @end defvar |
147 | 152 |
148 If these parameters specify a separate minibuffer-only frame with | 153 If these properties specify a separate minibuffer-only frame via a |
149 @code{(minibuffer . nil)}, and you have not created one, Emacs creates | 154 @code{minibuffer} property of @code{nil}, and you have not yet created |
150 one for you. | 155 one, XEmacs creates one for you. |
151 | 156 |
152 @defvar minibuffer-frame-alist | 157 @defvar minibuffer-frame-plist |
153 This variable's value is an alist of parameter values used when creating | 158 This variable's value is a plist of properties used when creating an |
154 an initial minibuffer-only frame---if such a frame is needed, according | 159 initial minibuffer-only frame---if such a frame is needed, according to |
155 to the parameters for the main initial frame. | 160 the properties for the main initial frame. |
156 @end defvar | 161 @end defvar |
157 | 162 |
158 @defvar default-frame-alist | 163 @defvar default-frame-plist |
159 This is an alist specifying default values of frame parameters for | 164 This is a plist specifying default values of frame properties for |
160 subsequent Emacs frames (not the initial ones). | 165 subsequent XEmacs frames (not the initial ones). |
161 @end defvar | 166 @end defvar |
162 | 167 |
163 See also @code{special-display-frame-alist}, in @ref{Choosing Window}. | 168 See also @code{special-display-frame-plist}, in @ref{Choosing Window}. |
164 | 169 |
165 If you use options that specify window appearance when you invoke Emacs, | 170 If you use options that specify window appearance when you invoke XEmacs, |
166 they take effect by adding elements to @code{default-frame-alist}. One | 171 they take effect by adding elements to @code{default-frame-plist}. One |
167 exception is @samp{-geometry}, which adds the specified position to | 172 exception is @samp{-geometry}, which adds the specified position to |
168 @code{initial-frame-alist} instead. @xref{Command Arguments,,, emacs, | 173 @code{initial-frame-plist} instead. @xref{Command Arguments,,, emacs, |
169 The XEmacs User's Manual}. | 174 The XEmacs User's Manual}. |
170 | 175 |
171 @node X Frame Parameters | 176 @node X Frame Properties |
172 @subsection X Window Frame Parameters | 177 @subsection X Window Frame Properties |
173 | 178 |
174 Just what parameters a frame has depends on what display mechanism it | 179 Just what properties a frame has depends on what display mechanism it |
175 uses. Here is a table of the parameters of an X window frame; of these, | 180 uses. Here is a table of the properties of an X window frame; of these, |
176 @code{name}, @code{height}, @code{width}, and @code{buffer-predicate} | 181 @code{name}, @code{height}, @code{width}, and @code{buffer-predicate} |
177 provide meaningful information in non-X frames. | 182 provide meaningful information in non-X frames. |
178 | 183 |
179 @table @code | 184 @table @code |
180 @item name | 185 @item name |
181 The name of the frame. Most window managers display the frame's name in | 186 The name of the frame. Most window managers display the frame's name in |
182 the frame's border, at the top of the frame. If you don't specify a | 187 the frame's border, at the top of the frame. If you don't specify a |
183 name, and you have more than one frame, Emacs sets the frame name based | 188 name, and you have more than one frame, XEmacs sets the frame name based |
184 on the buffer displayed in the frame's selected window. | 189 on the buffer displayed in the frame's selected window. |
185 | 190 |
186 If you specify the frame name explicitly when you create the frame, the | 191 If you specify the frame name explicitly when you create the frame, the |
187 name is also used (instead of the name of the Emacs executable) when | 192 name is also used (instead of the name of the XEmacs executable) when |
188 looking up X resources for the frame. | 193 looking up X resources for the frame. |
189 | 194 |
190 @item display | 195 @item display |
191 The display on which to open this frame. It should be a string of the | 196 The display on which to open this frame. It should be a string of the |
192 form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the | 197 form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the |
199 negative @var{pos} value. | 204 negative @var{pos} value. |
200 | 205 |
201 A negative number @minus{}@var{pos}, or a list of the form @code{(- | 206 A negative number @minus{}@var{pos}, or a list of the form @code{(- |
202 @var{pos})}, actually specifies the position of the right edge of the | 207 @var{pos})}, actually specifies the position of the right edge of the |
203 window with respect to the right edge of the screen. A positive value | 208 window with respect to the right edge of the screen. A positive value |
204 of @var{pos} counts toward the left. If the parameter is a negative | 209 of @var{pos} counts toward the left. If the property is a negative |
205 integer @minus{}@var{pos} then @var{pos} is positive! | 210 integer @minus{}@var{pos} then @var{pos} is positive! |
206 | 211 |
207 @item top | 212 @item top |
208 The screen position of the top edge, in pixels, with respect to the | 213 The screen position of the top edge, in pixels, with respect to the |
209 top edge of the screen. The value may be a positive number @var{pos}, | 214 top edge of the screen. The value may be a positive number @var{pos}, |
211 negative @var{pos} value. | 216 negative @var{pos} value. |
212 | 217 |
213 A negative number @minus{}@var{pos}, or a list of the form @code{(- | 218 A negative number @minus{}@var{pos}, or a list of the form @code{(- |
214 @var{pos})}, actually specifies the position of the bottom edge of the | 219 @var{pos})}, actually specifies the position of the bottom edge of the |
215 window with respect to the bottom edge of the screen. A positive value | 220 window with respect to the bottom edge of the screen. A positive value |
216 of @var{pos} counts toward the top. If the parameter is a negative | 221 of @var{pos} counts toward the top. If the property is a negative |
217 integer @minus{}@var{pos} then @var{pos} is positive! | 222 integer @minus{}@var{pos} then @var{pos} is positive! |
218 | 223 |
219 @item icon-left | 224 @item icon-left |
220 The screen position of the left edge @emph{of the frame's icon}, in | 225 The screen position of the left edge @emph{of the frame's icon}, in |
221 pixels, counting from the left edge of the screen. This takes effect if | 226 pixels, counting from the left edge of the screen. This takes effect if |
227 and when the frame is iconified. | 232 and when the frame is iconified. |
228 | 233 |
229 @item user-position | 234 @item user-position |
230 Non-@code{nil} if the screen position of the frame was explicitly | 235 Non-@code{nil} if the screen position of the frame was explicitly |
231 requested by the user (for example, with the @samp{-geometry} option). | 236 requested by the user (for example, with the @samp{-geometry} option). |
232 Nothing automatically makes this parameter non-@code{nil}; it is up to | 237 Nothing automatically makes this property non-@code{nil}; it is up to |
233 Lisp programs that call @code{make-frame} to specify this parameter as | 238 Lisp programs that call @code{make-frame} to specify this property as |
234 well as specifying the @code{left} and @code{top} parameters. | 239 well as specifying the @code{left} and @code{top} properties. |
235 | 240 |
236 @item height | 241 @item height |
237 The height of the frame contents, in characters. (To get the height in | 242 The height of the frame contents, in characters. (To get the height in |
238 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) | 243 pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) |
239 | 244 |
316 @cindex resize redisplay | 321 @cindex resize redisplay |
317 @cindex frame position | 322 @cindex frame position |
318 @cindex position of frame | 323 @cindex position of frame |
319 | 324 |
320 You can read or change the size and position of a frame using the | 325 You can read or change the size and position of a frame using the |
321 frame parameters @code{left}, @code{top}, @code{height}, and | 326 frame properties @code{left}, @code{top}, @code{height}, and |
322 @code{width}. Whatever geometry parameters you don't specify are chosen | 327 @code{width}. Whatever geometry properties you don't specify are chosen |
323 by the window manager in its usual fashion. | 328 by the window manager in its usual fashion. |
324 | 329 |
325 Here are some special features for working with sizes and positions: | 330 Here are some special features for working with sizes and positions: |
326 | 331 |
327 @defun set-frame-position frame left top | 332 @defun set-frame-position frame left top |
328 This function sets the position of the top left corner of @var{frame} to | 333 This function sets the position of the top left corner of @var{frame} to |
329 @var{left} and @var{top}. These arguments are measured in pixels, and | 334 @var{left} and @var{top}. These arguments are measured in pixels, and |
330 count from the top left corner of the screen. Negative parameter values | 335 count from the top left corner of the screen. Negative property values |
331 count up or rightward from the top left corner of the screen. | 336 count up or rightward from the top left corner of the screen. |
332 @end defun | 337 @end defun |
333 | 338 |
334 @defun frame-height &optional frame | 339 @defun frame-height &optional frame |
335 @defunx frame-width &optional frame | 340 @defunx frame-width &optional frame |
362 | 367 |
363 @ignore @c Not in XEmacs | 368 @ignore @c Not in XEmacs |
364 @defun x-parse-geometry geom | 369 @defun x-parse-geometry geom |
365 @cindex geometry specification | 370 @cindex geometry specification |
366 The function @code{x-parse-geometry} converts a standard X windows | 371 The function @code{x-parse-geometry} converts a standard X windows |
367 geometry string to an alist that you can use as part of the argument to | 372 geometry string to a plist that you can use as part of the argument to |
368 @code{make-frame}. | 373 @code{make-frame}. |
369 | 374 |
370 The alist describes which parameters were specified in @var{geom}, and | 375 The plist describes which properties were specified in @var{geom}, and |
371 gives the values specified for them. Each element looks like | 376 gives the values specified for them. Each element looks like |
372 @code{(@var{parameter} . @var{value})}. The possible @var{parameter} | 377 @code{(@var{property} . @var{value})}. The possible @var{property} |
373 values are @code{left}, @code{top}, @code{width}, and @code{height}. | 378 values are @code{left}, @code{top}, @code{width}, and @code{height}. |
374 | 379 |
375 For the size parameters, the value must be an integer. The position | 380 For the size properties, the value must be an integer. The position |
376 parameter names @code{left} and @code{top} are not totally accurate, | 381 property names @code{left} and @code{top} are not totally accurate, |
377 because some values indicate the position of the right or bottom edges | 382 because some values indicate the position of the right or bottom edges |
378 instead. These are the @var{value} possibilities for the position | 383 instead. These are the @var{value} possibilities for the position |
379 parameters: | 384 properties: |
380 | 385 |
381 @table @asis | 386 @table @asis |
382 @item an integer | 387 @item an integer |
383 A positive integer relates the left edge or top edge of the window to | 388 A positive integer relates the left edge or top edge of the window to |
384 the left or top edge of the screen. A negative integer relates the | 389 the left or top edge of the screen. A negative integer relates the |
419 name. | 424 name. |
420 | 425 |
421 @defun frame-name &optional frame | 426 @defun frame-name &optional frame |
422 This function returns the name of @var{frame}, which defaults to the | 427 This function returns the name of @var{frame}, which defaults to the |
423 selected frame if not specified. The name of a frame can also be | 428 selected frame if not specified. The name of a frame can also be |
424 obtained from the frame's parameters. @xref{Frame Parameters}. | 429 obtained from the frame's properties. @xref{Frame Properties}. |
425 @end defun | 430 @end defun |
426 | 431 |
427 @defvar default-frame-name | 432 @defvar default-frame-name |
428 This variable holds the default name to assign to newly-created frames. | 433 This variable holds the default name to assign to newly-created frames. |
429 This can be overridden by arguments to @code{make-frame}. This | 434 This can be overridden by arguments to @code{make-frame}. This |
434 @section Frame Titles | 439 @section Frame Titles |
435 | 440 |
436 Every frame has a title; most window managers display the frame title at | 441 Every frame has a title; most window managers display the frame title at |
437 the top of the frame. You can specify an explicit title with the | 442 the top of the frame. You can specify an explicit title with the |
438 @code{name} frame property. But normally you don't specify this | 443 @code{name} frame property. But normally you don't specify this |
439 explicitly, and Emacs computes the title automatically. | 444 explicitly, and XEmacs computes the title automatically. |
440 | 445 |
441 Emacs computes the frame title based on a template stored in the | 446 XEmacs computes the frame title based on a template stored in the |
442 variable @code{frame-title-format}. | 447 variable @code{frame-title-format}. |
443 | 448 |
444 @defvar frame-title-format | 449 @defvar frame-title-format |
445 This variable specifies how to compute a title for a frame | 450 This variable specifies how to compute a title for a frame |
446 when you have not explicitly specified one. | 451 when you have not explicitly specified one. |
494 @end defun | 499 @end defun |
495 | 500 |
496 @ignore Not in XEmacs currently | 501 @ignore Not in XEmacs currently |
497 Some window managers provide a command to delete a window. These work | 502 Some window managers provide a command to delete a window. These work |
498 by sending a special message to the program that operates the window. | 503 by sending a special message to the program that operates the window. |
499 When Emacs gets one of these commands, it generates a | 504 When XEmacs gets one of these commands, it generates a |
500 @code{delete-frame} event, whose normal definition is a command that | 505 @code{delete-frame} event, whose normal definition is a command that |
501 calls the function @code{delete-frame}. @xref{Misc Events}. | 506 calls the function @code{delete-frame}. @xref{Misc Events}. |
502 @end ignore | 507 @end ignore |
503 | 508 |
504 @node Finding All Frames | 509 @node Finding All Frames |
656 @code{select-frame} is the only way to switch frames, and the effect | 661 @code{select-frame} is the only way to switch frames, and the effect |
657 lasts until overridden by a subsequent call to @code{select-frame}. | 662 lasts until overridden by a subsequent call to @code{select-frame}. |
658 Only the selected terminal frame is actually displayed on the terminal. | 663 Only the selected terminal frame is actually displayed on the terminal. |
659 Each terminal screen except for the initial one has a number, and the | 664 Each terminal screen except for the initial one has a number, and the |
660 number of the selected frame appears in the mode line after the word | 665 number of the selected frame appears in the mode line after the word |
661 @samp{Emacs} (@pxref{Modeline Variables}). | 666 @samp{XEmacs} (@pxref{Modeline Variables}). |
662 | 667 |
663 @defun select-frame frame | 668 @defun select-frame frame |
664 This function selects frame @var{frame}, temporarily disregarding the | 669 This function selects frame @var{frame}, temporarily disregarding the |
665 focus of the X server if any. The selection of @var{frame} lasts until | 670 focus of the X server if any. The selection of @var{frame} lasts until |
666 the next time the user does something to select a different frame, or | 671 the next time the user does something to select a different frame, or |
671 to this frame, or the @code{select-frame-hook} or | 676 to this frame, or the @code{select-frame-hook} or |
672 @code{deselect-frame-hook} to be run, until the next time that XEmacs is | 677 @code{deselect-frame-hook} to be run, until the next time that XEmacs is |
673 waiting for an event. | 678 waiting for an event. |
674 | 679 |
675 @ignore (FSF Emacs) | 680 @ignore (FSF Emacs) |
676 Emacs cooperates with the X server and the window managers by arranging | 681 XEmacs cooperates with the X server and the window managers by arranging |
677 to select frames according to what the server and window manager ask | 682 to select frames according to what the server and window manager ask |
678 for. It does so by generating a special kind of input event, called a | 683 for. It does so by generating a special kind of input event, called a |
679 @dfn{focus} event. The command loop handles a focus event by calling | 684 @dfn{focus} event. The command loop handles a focus event by calling |
680 @code{handle-select-frame}. @xref{Focus Events}. | 685 @code{handle-select-frame}. @xref{Focus Events}. |
681 | 686 |
772 windows. On TTY frames, this is the same as @code{frame-visible-p}. | 777 windows. On TTY frames, this is the same as @code{frame-visible-p}. |
773 @end defun | 778 @end defun |
774 | 779 |
775 @ignore @c Not in XEmacs. | 780 @ignore @c Not in XEmacs. |
776 The visibility status of a frame is also available as a frame | 781 The visibility status of a frame is also available as a frame |
777 parameter. You can read or change it as such. @xref{X Frame | 782 property. You can read or change it as such. @xref{X Frame |
778 Parameters}. | 783 Properties}. |
779 | 784 |
780 The user can iconify and deiconify frames with the window manager. | 785 The user can iconify and deiconify frames with the window manager. This |
781 This happens below the level at which Emacs can exert any control, but | 786 happens below the level at which XEmacs can exert any control, but XEmacs |
782 Emacs does provide events that you can use to keep track of such | 787 does provide events that you can use to keep track of such changes. |
783 changes. @xref{Misc Events}. | 788 @xref{Misc Events}. |
784 @end ignore | 789 @end ignore |
785 | 790 |
786 @node Raising and Lowering | 791 @node Raising and Lowering |
787 @section Raising and Lowering Frames | 792 @section Raising and Lowering Frames |
788 | 793 |
816 selected) or auto-lower (lowering automatically when it is deselected). | 821 selected) or auto-lower (lowering automatically when it is deselected). |
817 Under X, most ICCCM-compliant window managers will have an option to do | 822 Under X, most ICCCM-compliant window managers will have an option to do |
818 this for you, but the following variables are provided in case you're | 823 this for you, but the following variables are provided in case you're |
819 using a broken WM. (Under FSF Emacs, the same functionality is | 824 using a broken WM. (Under FSF Emacs, the same functionality is |
820 provided through the @code{auto-raise} and @code{auto-lower} | 825 provided through the @code{auto-raise} and @code{auto-lower} |
821 frame parameters.) | 826 frame properties.) |
822 | 827 |
823 @defvar auto-raise-frame | 828 @defvar auto-raise-frame |
824 This variable's value is @code{t} if frames will be raised to the top | 829 This variable's value is @code{t} if frames will be raised to the top |
825 when selected. | 830 when selected. |
826 @end defvar | 831 @end defvar |