From: Chong Yidong Date: Sun, 4 Mar 2012 06:50:18 +0000 (+0800) Subject: Update Frames chapter of Lisp manager. Document clipboard manager. X-Git-Tag: emacs-pretest-24.0.05~177 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a08a07e3397edbc6b916e9e87ed67355ab0b2f9e;p=emacs.git Update Frames chapter of Lisp manager. Document clipboard manager. * doc/emacs/killing.texi (Clipboard): Document clipboard manager. * doc/lispref/windows.texi (Basic Windows, Coordinates and Windows) (Coordinates and Windows): * display.texi (Refresh Screen, Line Height, Face Attributes) (Overlay Arrow, Beeping, Glyphless Chars): Likewise. * doc/lispref/frames.texi (Frames): Remove little-used "terminal frame" and "window frame" terminology. (Frame Parameters, Font and Color Parameters, Initial Parameters) (Size and Position, Visibility of Frames): Callers changed. (Frames): Clarify which terminals in framep are graphical. (Initial Parameters): --geometry is not the only option which adds to initial-frame-alist. (Position Parameters): Note that icon-left and icon-top are for old window managers only. (Size Parameters): Sizes are in characters even on graphical displays. (Management Parameters): Note that window-id and outer-window-id can't really be changed, and that auto-raise isn't always obeyed. (Cursor Parameters): Document cursor-type explicitly. (Size and Position): The aliases set-screen-height and set-screen-width have been deleted. (Visibility of Frames): Mention "minimization". * doc/lispref/os.texi (Startup Summary): Minor clarifications. (Startup Summary, Suspending Emacs): Standardize on "text terminal" terminology. --- diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 9daade6367c..636d400f5cb 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -197,7 +197,7 @@ elisp.texi errors.texi rgm eval.texi cyd files.texi cyd -frames.texi +frames.texi cyd functions.texi cyd hash.texi cyd help.texi cyd diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 5be02a39742..5a1d1394b23 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2012-03-04 Chong Yidong + + * killing.texi (Clipboard): Document clipboard manager. + 2012-02-29 Glenn Morris * ack.texi (Acknowledgments): Use @Tex{} in more places. diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index e76e2fafc55..270ca9e77a8 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -490,6 +490,17 @@ new yank to the clipboard. To prevent kill and yank commands from accessing the clipboard, change the variable @code{x-select-enable-clipboard} to @code{nil}. +@cindex clipboard manager +@vindex x-select-enable-clipboard-manager + Many X desktop environments support a feature called the +@dfn{clipboard manager}. If you exit Emacs while it is the current +``owner'' of the clipboard data, and there is a clipboard manager +running, Emacs transfers the clipboard data to the clipboard manager +so that it is not lost. In some circumstances, this may cause a delay +when exiting Emacs; if you wish to prevent Emacs from transferring +data to the clipboard manager, change the variable +@code{x-select-enable-clipboard-manager} to @code{nil}. + @vindex x-select-enable-primary @findex clipboard-kill-region @findex clipboard-kill-ring-save diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 1cbee05d4d4..51eed431ca2 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,32 @@ +2012-03-04 Chong Yidong + + * frames.texi (Frames): Remove little-used "terminal frame" and + "window frame" terminology. + (Frame Parameters, Font and Color Parameters, Initial Parameters) + (Size and Position, Visibility of Frames): Callers changed. + (Frames): Clarify which terminals in framep are graphical. + (Initial Parameters): --geometry is not the only option which adds + to initial-frame-alist. + (Position Parameters): Note that icon-left and icon-top are for + old window managers only. + (Size Parameters): Sizes are in characters even on graphical + displays. + (Management Parameters): Note that window-id and outer-window-id + can't really be changed, and that auto-raise isn't always obeyed. + (Cursor Parameters): Document cursor-type explicitly. + (Size and Position): The aliases set-screen-height and + set-screen-width have been deleted. + (Visibility of Frames): Mention "minimization". + + * os.texi (Startup Summary): Minor clarifications. + (Startup Summary, Suspending Emacs): Standardize on "text + terminal" terminology. + + * windows.texi (Basic Windows, Coordinates and Windows) + (Coordinates and Windows): + * display.texi (Refresh Screen, Line Height, Face Attributes) + (Overlay Arrow, Beeping, Glyphless Chars): Likewise. + 2012-03-04 Glenn Morris * abbrevs.texi: Small copyedits throughout. diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index dbd39de2f6d..2463d6535fd 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi @@ -93,9 +93,9 @@ are always drawn using the X core font driver. @item Display terminals are no longer represented using a ``terminal'' data type; this is not necessary, because we have removed the ability to -display on graphical and text-only terminals simultaneously. For the -same reason, the @code{window-system} variable is no longer -frame-local, and the @code{window-system} function has been removed. +display on graphical and text terminals simultaneously. For the same +reason, the @code{window-system} variable is no longer frame-local, +and the @code{window-system} function has been removed. @item The functions @code{list-system-processes} and diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 9c4720d9102..281ddda9cec 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -62,7 +62,7 @@ you call these functions when input is available, they don't redisplay immediately, but the requested redisplay does happen eventually---after all the input has been processed. - On text-only terminals, suspending and resuming Emacs normally also + On text terminals, suspending and resuming Emacs normally also refreshes the screen. Some terminal emulators record separate contents for display-oriented programs such as Emacs and for ordinary sequential display. If you are using such a terminal, you might want @@ -1809,7 +1809,7 @@ into a Lisp value as described above. However, in this case the numeric height value specifies the line spacing, rather than the line height. - On text-only terminals, the line spacing cannot be altered. + On text terminals, the line spacing cannot be altered. @node Faces @section Faces @@ -2058,7 +2058,7 @@ floating point and function values are not allowed. Font weight---one of the symbols (from densest to faintest) @code{ultra-bold}, @code{extra-bold}, @code{bold}, @code{semi-bold}, @code{normal}, @code{semi-light}, @code{light}, @code{extra-light}, or -@code{ultra-light}. On text-only terminals that support +@code{ultra-light}. On text terminals which support variable-brightness text, any weight greater than normal is displayed as extra bright, and any weight less than normal is displayed as half-bright. @@ -2066,8 +2066,8 @@ half-bright. @item :slant Font slant---one of the symbols @code{italic}, @code{oblique}, @code{normal}, @code{reverse-italic}, or @code{reverse-oblique}. On -text-only terminals that support variable-brightness text, slanted -text is displayed as half-bright. +text terminals that support variable-brightness text, slanted text is +displayed as half-bright. @item :foreground Foreground color, a string. The value can be a system-defined color @@ -3649,9 +3649,9 @@ this list. Each variable on this list can have properties @code{overlay-arrow-string} and @code{overlay-arrow-bitmap} that -specify an overlay arrow string (for text-only terminals) or fringe -bitmap (for graphical terminals) to display at the corresponding -overlay arrow position. If either property is not set, the default +specify an overlay arrow string (for text terminals) or fringe bitmap +(for graphical terminals) to display at the corresponding overlay +arrow position. If either property is not set, the default @code{overlay-arrow-string} or @code{overlay-arrow} fringe indicator is used. @@ -6043,8 +6043,8 @@ This is a synonym for @code{ding}. @defopt visible-bell This variable determines whether Emacs should flash the screen to -represent a bell. Non-@code{nil} means yes, @code{nil} means no. This -is effective on graphical displays, and on text-only terminals +represent a bell. Non-@code{nil} means yes, @code{nil} means no. +This is effective on graphical displays, and on text terminals provided the terminal's Termcap entry defines the visible bell capability (@samp{vb}). @end defopt @@ -6340,7 +6340,7 @@ such changes affect all of Emacs display. they appear in a buffer, but in some special way (e.g. as a box containing a hexadecimal code). These include characters that cannot be displayed with any available font (on a graphical display), or that -cannot be encoded by the terminal's coding system (on a text-only +cannot be encoded by the terminal's coding system (on a text terminal). Specific characters can also be defined to be glyphless. @defvar glyphless-char-display @@ -6355,7 +6355,7 @@ Don't display the character. @item @code{thin-space} Display a thin space, 1-pixel wide on graphical displays, or -1-character wide on text-only terminals. +1-character wide on text terminals. @item @code{empty-box} Display an empty box. @@ -6374,7 +6374,7 @@ Except for @code{zero-width}, these methods display using the An entry can also be a cons cell @code{(@var{graphical} . @var{text})}, where @var{graphical} and @var{text} are the display -methods on graphical displays and text-only terminals respectively. +methods on graphical displays and text terminals respectively. The char-table has one extra slot, which determines how to display any character that cannot be displayed with any available font, or cannot diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 8e2e02a2ec0..7a444ee4039 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -972,7 +972,7 @@ Frames * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 1e4ae6b135a..a01ad051489 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -23,26 +23,25 @@ into smaller windows. @xref{Splitting Windows}. more Emacs frames. In Emacs Lisp, a @dfn{terminal object} is a Lisp object that represents a terminal. @xref{Terminal Type}. -@cindex terminal frame -@cindex window frame - There are two classes of terminals: text-only terminals and -graphical terminals. Text-only terminals are non-graphics-capable -display devices, including ``terminal emulators'' such as xterm. On -text-only terminals, each frame occupies the entire terminal screen; -although you can create additional frames and switch between them, -only one frame can be shown at any given time. We refer to frames on -text-only terminals as @dfn{terminal frames}. Graphical terminals, on -the other hand, are graphics-capable windowing systems, such as the X -Window System. On a graphical terminal, Emacs can display multiple -frames simultaneously. We refer to such frames as @dfn{window -frames}. +@cindex text terminal +@cindex graphical terminal +@cindex graphical display + There are two classes of terminals: @dfn{text terminals} and +@dfn{graphical terminals}. Text terminals are non-graphics-capable +displays, including @command{xterm} and other terminal emulators. On +a text terminal, each Emacs frame occupies the terminal's entire +screen; although you can create additional frames and switch between +them, the terminal only shows one frame at a time. Graphical +terminals, on the other hand, are managed by graphical display systems +such as the X Window System, which allow Emacs to show multiple frames +simultaneously on the same display. On GNU and Unix systems, you can create additional frames on any available terminal, within a single Emacs session, regardless of -whether Emacs was started on a text-only or graphical terminal. Emacs -can display on both graphical and text-only terminals simultaneously. -This comes in handy, for instance, when you connect to the same -session from several remote locations. @xref{Multiple Terminals}. +whether Emacs was started on a text or graphical terminal. Emacs can +display on both graphical and text terminals simultaneously. This +comes in handy, for instance, when you connect to the same session +from several remote locations. @xref{Multiple Terminals}. @defun framep object This predicate returns a non-@code{nil} value if @var{object} is a @@ -50,14 +49,15 @@ frame, and @code{nil} otherwise. For a frame, the value indicates which kind of display the frame uses: @table @code -@item x -The frame is displayed in an X window. @item t -A terminal frame on a character display. +The frame is displayed on a text terminal. +@item x +The frame is displayed on an X graphical terminal. @item w32 -The frame is displayed on MS-Windows 9X/NT. +The frame is displayed on a MS-Windows graphical terminal. @item ns -The frame is displayed on a GNUstep or Macintosh Cocoa display. +The frame is displayed on a GNUstep or Macintosh Cocoa graphical +terminal. @item pc The frame is displayed on an MS-DOS terminal. @end table @@ -71,10 +71,10 @@ selected frame. @defun terminal-live-p object This predicate returns a non-@code{nil} value if @var{object} is a -terminal that is alive (i.e.@: was not deleted), and @code{nil} -otherwise. For live terminals, the return value indicates what kind -of frames are displayed on that terminal; the list of possible values -is the same as for @code{framep} above. +terminal that is live (i.e.@: not deleted), and @code{nil} otherwise. +For live terminals, the return value indicates what kind of frames are +displayed on that terminal; the list of possible values is the same as +for @code{framep} above. @end defun @menu @@ -99,7 +99,7 @@ is the same as for @code{framep} above. * Window System Selections:: Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. @end menu @@ -118,7 +118,7 @@ for the new frame. @xref{Frame Parameters}. If you specify the @code{terminal} parameter in @var{alist}, the new frame is created on that terminal. Otherwise, if you specify the @code{window-system} frame parameter in @var{alist}, that determines whether the frame -should be displayed on a text-only or graphical terminal. +should be displayed on a text terminal or a graphical terminal. @xref{Window Systems}. If neither is specified, the new frame is created in the same terminal as the selected frame. @@ -163,15 +163,15 @@ frame. @cindex multiple X displays @cindex displays, multiple - Emacs represents each terminal, whether graphical or text-only, as a -@dfn{terminal object} data type (@pxref{Terminal Type}). On GNU and -Unix systems, Emacs can use multiple terminals simultaneously in each -session. On other systems, it can only use a single terminal. Each -terminal object has the following attributes: + Emacs represents each terminal as a @dfn{terminal object} data type +(@pxref{Terminal Type}). On GNU and Unix systems, Emacs can use +multiple terminals simultaneously in each session. On other systems, +it can only use a single terminal. Each terminal object has the +following attributes: @itemize @bullet @item -The name of the device used by the terminal (e.g., @samp{:0.0} or +The name of the device used by the terminal (e.g.@: @samp{:0.0} or @file{/dev/tty}). @item @@ -180,7 +180,7 @@ The terminal and keyboard coding systems used on the terminal. @item The kind of display associated with the terminal. This is the symbol -returned by the function @code{terminal-live-p} (i.e., @code{x}, +returned by the function @code{terminal-live-p} (i.e.@: @code{x}, @code{t}, @code{w32}, @code{ns}, or @code{pc}). @xref{Frames}. @item @@ -189,7 +189,7 @@ A list of terminal parameters. @xref{Terminal Parameters}. There is no primitive for creating terminal objects. Emacs creates them as needed, such as when you call @code{make-frame-on-display} -(which is described below). +(described below). @defun terminal-name &optional terminal This function returns the file name of the device used by @@ -199,7 +199,7 @@ a frame, meaning that frame's terminal. @end defun @defun terminal-list -This function returns a list of all terminal objects currently in use. +This function returns a list of all live terminal objects. @end defun @defun get-device-terminal device @@ -248,15 +248,15 @@ never be buffer-local (@pxref{Buffer-Local Variables}). On GNU and Unix systems, each X display is a separate graphical terminal. When Emacs is started from within the X window system, it -uses the X display chosen with the @code{DISPLAY} environment -variable, or with the @samp{--display} option. @xref{Initial -Options,,, emacs, The GNU Emacs Manual}. Emacs can connect to other X -displays via the command @code{make-frame-on-display}. Each X display -has its own selected frame and its own minibuffer windows; however, -only one of those frames is ``@emph{the} selected frame'' at any given -moment (@pxref{Input Focus}). Emacs can even connect to other -text-only terminals, by interacting with the @command{emacsclient} -program. @xref{Emacs Server,,, emacs, The GNU Emacs Manual}. +uses the X display specified by the @env{DISPLAY} environment +variable, or by the @samp{--display} option (@pxref{Initial Options,,, +emacs, The GNU Emacs Manual}). Emacs can connect to other X displays +via the command @code{make-frame-on-display}. Each X display has its +own selected frame and its own minibuffer windows; however, only one +of those frames is ``@emph{the} selected frame'' at any given moment +(@pxref{Input Focus}). Emacs can even connect to other text +terminals, by interacting with the @command{emacsclient} program. +@xref{Emacs Server,,, emacs, The GNU Emacs Manual}. A single X server can handle more than one display. Each X display has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}. @@ -267,8 +267,8 @@ server, Emacs knows by the similarity in their names that they share a single keyboard. On some ``multi-monitor'' setups, a single X display outputs to more -than one monitor. Currently, there is no way for Emacs to distinguish -between the different physical monitors. +than one physical monitor. Currently, there is no way for Emacs to +distinguish between the different physical monitors. @deffn Command make-frame-on-display display &optional parameters This function creates and returns a new frame on @var{display}, taking @@ -277,8 +277,8 @@ the other frame parameters from the alist @var{parameters}. Before creating the frame, this function ensures that Emacs is ``set up'' to display graphics. For instance, if Emacs has not processed X -resources (e.g., if it was started on a text-only terminal), it does -so at this time. In all other respects, this function behaves like +resources (e.g.@: if it was started on a text terminal), it does so at +this time. In all other respects, this function behaves like @code{make-frame} (@pxref{Creating Frames}). @end deffn @@ -324,15 +324,15 @@ on that display (@pxref{Deleting Frames}). Just what parameters a frame has depends on what display mechanism it uses. - Frame parameters exist mostly for the sake of window systems. A -terminal frame has a few parameters, mostly for compatibility's sake; -only the @code{height}, @code{width}, @code{name}, @code{title}, -@code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate} -parameters do something special. If the terminal supports colors, the -parameters @code{foreground-color}, @code{background-color}, -@code{background-mode} and @code{display-type} are also meaningful. -If the terminal supports frame transparency, the parameter -@code{alpha} is also meaningful. + Frame parameters exist mostly for the sake of graphical displays. +Most frame parameters have no effect when applied to a frame on a text +terminal; only the @code{height}, @code{width}, @code{name}, +@code{title}, @code{menu-bar-lines}, @code{buffer-list} and +@code{buffer-predicate} parameters do something special. If the +terminal supports colors, the parameters @code{foreground-color}, +@code{background-color}, @code{background-mode} and +@code{display-type} are also meaningful. If the terminal supports +frame transparency, the parameter @code{alpha} is also meaningful. @menu * Parameter Access:: How to change a frame's parameters. @@ -386,12 +386,13 @@ parameter values to frames that will be created henceforth. @node Initial Parameters @subsection Initial Frame Parameters -You can specify the parameters for the initial startup frame -by setting @code{initial-frame-alist} in your init file (@pxref{Init File}). +You can specify the parameters for the initial startup frame by +setting @code{initial-frame-alist} in your init file (@pxref{Init +File}). @defopt initial-frame-alist -This variable's value is an alist of parameter values used when creating -the initial window frame. You can set this variable to specify the +This variable's value is an alist of parameter values used when +creating the initial frame. You can set this variable to specify the appearance of the initial frame without altering subsequent frames. Each element has the form: @@ -443,11 +444,13 @@ Functions that display a buffer in a separate frame can override the default parameters by supplying their own parameters. @xref{Definition of special-display-frame-alist}. -If you use options that specify window appearance when you invoke Emacs, -they take effect by adding elements to @code{default-frame-alist}. One -exception is @samp{-geometry}, which adds the specified position to -@code{initial-frame-alist} instead. @xref{Emacs Invocation,, Command -Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. +If you invoke Emacs with command-line options that specify frame +appearance, those options take effect by adding elements to either +@code{initial-frame-alist} or @code{default-frame-alist}. Options +which affect just the initial frame, such as @samp{-geometry} and +@samp{--maximized}, add to @code{initial-frame-alist}; the others add +to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line +Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. @node Window Frame Parameters @subsection Window Frame Parameters @@ -458,8 +461,8 @@ it uses. This section describes the parameters that have special meanings on some or all kinds of terminals. Of these, @code{name}, @code{title}, @code{height}, @code{width}, @code{buffer-list} and @code{buffer-predicate} provide meaningful information in terminal -frames, and @code{tty-color-mode} is meaningful @emph{only} in -terminal frames. +frames, and @code{tty-color-mode} is meaningful only for frames on +text terminals. @menu * Basic Parameters:: Parameters that are fundamental. @@ -523,7 +526,7 @@ named, this parameter will be @code{nil}. @cindex window position on display Position parameters' values are normally measured in pixels, but on -text-only terminals they count characters or lines instead. +text terminals they count characters or lines instead. @table @code @vindex left, a frame parameter @@ -560,19 +563,17 @@ to the top (or bottom) edge of the screen. It works just like @vindex icon-left, a frame parameter @item icon-left -The screen position of the left edge @emph{of the frame's icon}, in -pixels, counting from the left edge of the screen. This takes effect if -and when the frame is iconified. - -If you specify a value for this parameter, then you must also specify -a value for @code{icon-top} and vice versa. The window manager may -ignore these two parameters. +The screen position of the left edge of the frame's icon, in pixels, +counting from the left edge of the screen. This takes effect when the +frame is iconified, if the window manager supports this feature. If +you specify a value for this parameter, then you must also specify a +value for @code{icon-top} and vice versa. @vindex icon-top, a frame parameter @item icon-top -The screen position of the top edge @emph{of the frame's icon}, in -pixels, counting from the top edge of the screen. This takes effect if -and when the frame is iconified. +The screen position of the top edge of the frame's icon, in pixels, +counting from the top edge of the screen. This takes effect when the +frame is iconified, if the window manager supports this feature. @vindex user-position, a frame parameter @item user-position @@ -600,8 +601,9 @@ parameters represent the user's stated preference; otherwise, use @subsubsection Size Parameters @cindex window size on display - Size parameters' values are normally measured in pixels, but on -text-only terminals they count characters or lines instead. + Frame parameters specify frame sizes in character units. On +graphical displays, the @code{default} face determines the actual +pixel sizes of these character units (@pxref{Face Attributes}). @table @code @vindex height, a frame parameter @@ -756,8 +758,9 @@ If non-@code{nil}, this frame's window is never split automatically. @subsubsection Window Management Parameters @cindex window manager interaction, and frame parameters - These frame parameters, meaningful only on window system displays, -interact with the window manager. + The following frame parameters control various aspects of the +frame's interaction with the window manager. They have no effect on +text terminals. @table @code @vindex visibility, a frame parameter @@ -768,11 +771,13 @@ iconified. @xref{Visibility of Frames}. @vindex auto-raise, a frame parameter @item auto-raise -Whether selecting the frame raises it (non-@code{nil} means yes). +If non-@code{nil}, Emacs automatically raises the frame when it is +selected. Some window managers do not allow this. @vindex auto-lower, a frame parameter @item auto-lower -Whether deselecting the frame lowers it (non-@code{nil} means yes). +If non-@code{nil}, Emacs automatically lowers the frame when it is +deselected. Some window managers do not allow this. @vindex icon-type, a frame parameter @item icon-type @@ -788,12 +793,15 @@ appears. If this is @code{nil}, the frame's title is used. @vindex window-id, a frame parameter @item window-id -The number of the window-system window used by the frame -to contain the actual Emacs windows. +The ID number which the graphical display uses for this frame. Emacs +assigns this parameter when the frame is created; changing the +parameter has no effect on the actual ID number. @vindex outer-window-id, a frame parameter @item outer-window-id -The number of the outermost window-system window used for the whole frame. +The ID number of the outermost window-system window in which the frame +exists. As with @code{window-id}, changing this parameter has no +actual effect. @vindex wait-for-wm, a frame parameter @item wait-for-wm @@ -848,9 +856,26 @@ Display a horizontal bar @var{height} pixels high. @end table @vindex cursor-type -The buffer-local variable @code{cursor-type} overrides the value of -the @code{cursor-type} frame parameter, but if it is @code{t}, that -means to use the cursor specified for the frame. +The @code{cursor-type} frame parameter may be overridden by the +variables @code{cursor-type} and +@code{cursor-in-non-selected-windows}: + +@defvar cursor-type +This buffer-local variable controls how the cursor looks in a selected +window showing the buffer. If its value is @code{t}, that means to +use the cursor specified by the @code{cursor-type} frame parameter. +Otherwise, the value should be one of the cursor types listed above, +and it overrides the @code{cursor-type} frame parameter. +@end defvar + +@defopt cursor-in-non-selected-windows +This buffer-local variable controls how the cursor looks in a window +that is not selected. It supports the same values as the +@code{cursor-type} frame parameter; also, @code{nil} means don't +display a cursor in nonselected windows, and @code{t} (the default) +means use a standard modification of the usual cursor type (solid box +becomes hollow box, and bar becomes a narrower bar). +@end defopt @defopt blink-cursor-alist This variable specifies how to blink the cursor. Each element has the @@ -866,15 +891,6 @@ variable do not take effect immediately, only when you specify the @code{cursor-type} frame parameter. @end defopt -@defopt cursor-in-non-selected-windows -This variable controls how the cursor looks in a window that is not -selected. It supports the same values as the @code{cursor-type} frame -parameter; also, @code{nil} means don't display a cursor in -nonselected windows, and @code{t} (the default) means use a standard -modification of the usual cursor type (solid box becomes hollow box, -and bar becomes a narrower bar). -@end defopt - @node Font and Color Parameters @subsubsection Font and Color Parameters @cindex font and color, frame parameters @@ -903,7 +919,7 @@ to whether the background color is a light one or a dark one. @cindex standard colors for character terminals This parameter overrides the terminal's color support as given by the system's terminal capabilities database in that this parameter's value -specifies the color mode to use in terminal frames. The value can be +specifies the color mode to use on a text terminal. The value can be either a symbol or a number. A number specifies the number of colors to use (and, indirectly, what commands to issue to produce each color). For example, @code{(tty-color-mode . 8)} specifies use of the @@ -1047,17 +1063,17 @@ selected frame. @defunx frame-pixel-width &optional frame These functions return the height and width of the main display area of @var{frame}, measured in pixels. If you don't supply @var{frame}, -they use the selected frame. For a text-only terminal, the results are -in characters rather than pixels. +they use the selected frame. For a text terminal, the results are in +characters rather than pixels. -These values include the internal borders, and windows' scroll bars and -fringes (which belong to individual windows, not to the frame itself). -The exact value of the heights depends on the window-system and toolkit -in use. With Gtk+, the height does not include any tool bar or menu -bar. With the Motif or Lucid toolkits, it includes the tool bar but -not the menu bar. In a graphical version with no toolkit, it includes -both the tool bar and menu bar. For a text-only terminal, the result -includes the menu bar. +These values include the internal borders, and windows' scroll bars +and fringes (which belong to individual windows, not to the frame +itself). The exact value of the heights depends on the window-system +and toolkit in use. With Gtk+, the height does not include any tool +bar or menu bar. With the Motif or Lucid toolkits, it includes the +tool bar but not the menu bar. In a graphical version with no +toolkit, it includes both the tool bar and menu bar. For a text +terminal, the result includes the menu bar. @end defun @defun frame-char-height &optional frame @@ -1084,13 +1100,13 @@ fit. If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines} lines of output in @var{frame}, but does not change its value for the -actual height of the frame. This is only useful for a terminal frame. +actual height of the frame. This is only useful on text terminals. Using a smaller height than the terminal actually implements may be useful to reproduce behavior observed on a smaller screen, or if the terminal malfunctions when using its whole screen. Setting the frame height ``for real'' does not always work, because knowing the correct -actual size may be necessary for correct cursor positioning on a -terminal frame. +actual size may be necessary for correct cursor positioning on +text terminals. @end defun @defun set-frame-width frame width &optional pretend @@ -1099,13 +1115,6 @@ The argument @var{pretend} has the same meaning as in @code{set-frame-height}. @end defun -@findex set-screen-height -@findex set-screen-width - The older functions @code{set-screen-height} and -@code{set-screen-width} were used to specify the height and width of the -screen, in Emacs versions that did not support multiple frames. They -are semi-obsolete, but still work; they apply to the selected frame. - @node Geometry @subsection Geometry @@ -1230,9 +1239,10 @@ while processing @code{frame-title-format} or @section Deleting Frames @cindex deleting frames -Frames remain potentially visible until you explicitly @dfn{delete} -them. A deleted frame cannot appear on the screen, but continues to -exist as a Lisp object until there are no references to it. + A @dfn{live frame} is one that has not been deleted. When a frame +is deleted, it is removed from its terminal display, although it may +continue to exist as a Lisp object until there are no more references +to it. @deffn Command delete-frame &optional frame force @vindex delete-frame-functions @@ -1263,25 +1273,25 @@ calls the function @code{delete-frame}. @xref{Misc Events}. @cindex frames, scanning all @defun frame-list -The function @code{frame-list} returns a list of all the live frames, -i.e.@: those that have not been deleted. It is analogous to -@code{buffer-list} for buffers, and includes frames on all terminals. -The list that you get is newly created, so modifying the list doesn't -have any effect on the internals of Emacs. +This function returns a list of all the live frames, i.e.@: those that +have not been deleted. It is analogous to @code{buffer-list} for +buffers, and includes frames on all terminals. The list that you get +is newly created, so modifying the list doesn't have any effect on the +internals of Emacs. @end defun @defun visible-frame-list This function returns a list of just the currently visible frames. -@xref{Visibility of Frames}. (Terminal frames always count as -``visible,'' even though only the selected one is actually displayed.) +@xref{Visibility of Frames}. Frames on text terminals always count as +``visible'', even though only the selected one is actually displayed. @end defun @defun next-frame &optional frame minibuf -The function @code{next-frame} lets you cycle conveniently through all -the frames on the current display from an arbitrary starting point. It -returns the ``next'' frame after @var{frame} in the cycle. If -@var{frame} is omitted or @code{nil}, it defaults to the selected frame -(@pxref{Input Focus}). +This function lets you cycle conveniently through all the frames on +the current display from an arbitrary starting point. It returns the +``next'' frame after @var{frame} in the cycle. If @var{frame} is +omitted or @code{nil}, it defaults to the selected frame (@pxref{Input +Focus}). The second argument, @var{minibuf}, says which frames to consider: @@ -1369,20 +1379,20 @@ function @code{select-frame}. This does not alter the window system's concept of focus; rather, it escapes from the window manager's control until that control is somehow reasserted. -When using a text-only terminal, only one frame can be displayed at a -time on the terminal, so after a call to @code{select-frame}, the next +When using a text terminal, only one frame can be displayed at a time +on the terminal, so after a call to @code{select-frame}, the next redisplay actually displays the newly selected frame. This frame remains selected until a subsequent call to @code{select-frame}. Each -terminal frame has a number which appears in the mode line before the -buffer name (@pxref{Mode Line Variables}). +frame on a text terminal has a number which appears in the mode line +before the buffer name (@pxref{Mode Line Variables}). @defun select-frame-set-input-focus frame &optional norecord This function selects @var{frame}, raises it (should it happen to be obscured by other frames) and tries to give it the X server's focus. -On a text-only terminal, the next redisplay displays the new frame on -the entire terminal screen. The optional argument @var{norecord} has -the same meaning as for @code{select-frame} (see below). The return -value of this function is not significant. +On a text terminal, the next redisplay displays the new frame on the +entire terminal screen. The optional argument @var{norecord} has the +same meaning as for @code{select-frame} (see below). The return value +of this function is not significant. @end defun @defun select-frame frame &optional norecord @@ -1466,20 +1476,34 @@ position consistent with the new selected frame. @cindex visible frame @cindex invisible frame @cindex iconified frame +@cindex minimized frame @cindex frame visibility -A window frame may be @dfn{visible}, @dfn{invisible}, or -@dfn{iconified}. If it is visible, you can see its contents, unless -other windows cover it. If it is iconified, the frame's contents do -not appear on the screen, but an icon does. (Note: because of the -way in which some window managers implement the concept of multiple -workspaces, or desktops, all frames on other workspaces may appear to -Emacs to be iconified.) If the frame is invisible, it doesn't show on -the screen, not even as an icon. +A frame on a graphical display may be @dfn{visible}, @dfn{invisible}, +or @dfn{iconified}. If it is visible, its contents are displayed in +the usual manner. If it is iconified, its contents are not displayed, +but there is a little icon somewhere to bring the frame back into view +(some window managers refer to this state as @dfn{minimized} rather +than @dfn{iconified}, but from Emacs' point of view they are the same +thing). If a frame is invisible, it is not displayed at all. -Visibility is meaningless for terminal frames, since only the selected + Visibility is meaningless on text terminals, since only the selected one is actually displayed in any case. +@defun frame-visible-p frame +This function returns the visibility status of frame @var{frame}. The +value is @code{t} if @var{frame} is visible, @code{nil} if it is +invisible, and @code{icon} if it is iconified. + +On a text terminal, all frames are considered visible, whether they +are currently being displayed or not. +@end defun + +@deffn Command iconify-frame &optional frame +This function iconifies frame @var{frame}. If you omit @var{frame}, it +iconifies the selected frame. +@end deffn + @deffn Command make-frame-visible &optional frame This function makes frame @var{frame} visible. If you omit @var{frame}, it makes the selected frame visible. This does not raise @@ -1495,29 +1519,12 @@ Unless @var{force} is non-@code{nil}, this function refuses to make @var{frame} invisible if all other frames are invisible.. @end deffn -@deffn Command iconify-frame &optional frame -This function iconifies frame @var{frame}. If you omit @var{frame}, it -iconifies the selected frame. -@end deffn - -@defun frame-visible-p frame -This returns the visibility status of frame @var{frame}. The value is -@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and -@code{icon} if it is iconified. - -On a text-only terminal, all frames are considered visible, whether -they are currently being displayed or not, and this function returns -@code{t} for all frames. -@end defun - The visibility status of a frame is also available as a frame parameter. You can read or change it as such. @xref{Management -Parameters}. - - The user can iconify and deiconify frames with the window manager. -This happens below the level at which Emacs can exert any control, but -Emacs does provide events that you can use to keep track of such -changes. @xref{Misc Events}. +Parameters}. The user can also iconify and deiconify frames with the +window manager. This happens below the level at which Emacs can exert +any control, but Emacs does provide events that you can use to keep +track of such changes. @xref{Misc Events}. @node Raising and Lowering @section Raising and Lowering Frames @@ -2110,10 +2117,10 @@ and that name is still supported as an alias. @node Text Terminal Colors @section Text Terminal Colors -@cindex colors on text-only terminals +@cindex colors on text terminals - Text-only terminals usually support only a small number of colors, -and the computer uses small integers to select colors on the terminal. + Text terminals usually support only a small number of colors, and +the computer uses small integers to select colors on the terminal. This means that the computer cannot reliably tell what the selected color looks like; instead, you have to inform your application which small integers correspond to which colors. However, Emacs does know @@ -2127,10 +2134,10 @@ in @ref{Color Names}. These functions accept a display (either a frame or the name of a terminal) as an optional argument. We hope in the future to make -Emacs support different colors on different text-only terminals; then -this argument will specify which terminal to operate on (the default -being the selected frame's terminal; @pxref{Input Focus}). At -present, though, the @var{frame} argument has no effect. +Emacs support different colors on different text terminals; then this +argument will specify which terminal to operate on (the default being +the selected frame's terminal; @pxref{Input Focus}). At present, +though, the @var{frame} argument has no effect. @defun tty-color-define name number &optional rgb frame This function associates the color name @var{name} with @@ -2144,12 +2151,12 @@ Emacs will not know what it looks like. @end defun @defun tty-color-clear &optional frame -This function clears the table of defined colors for a text-only terminal. +This function clears the table of defined colors for a text terminal. @end defun @defun tty-color-alist &optional frame -This function returns an alist recording the known colors supported by a -text-only terminal. +This function returns an alist recording the known colors supported by +a text terminal. Each element has the form @code{(@var{name} @var{number} . @var{rgb})} or @code{(@var{name} @var{number})}. Here, @var{name} is the color @@ -2265,8 +2272,8 @@ a mouse. @defun display-graphic-p &optional display This function returns @code{t} if @var{display} is a graphic display capable of displaying several frames and several different fonts at -once. This is true for displays that use a window system such as X, and -false for text-only terminals. +once. This is true for displays that use a window system such as X, +and false for text terminals. @end defun @defun display-mouse-p &optional display diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index e63300cfac4..f7df5f4bf87 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -101,8 +101,8 @@ even earlier than this.) It runs the normal hook @code{before-init-hook}. @item -It initializes the window frame and faces, if appropriate, and turns -on the menu bar and tool bar, if the initial frame needs them. +It initializes the initial frame's faces, and turns on the menu bar +and tool bar if needed. @item It loads the library @file{site-start}, if it exists. This is not @@ -144,7 +144,7 @@ If the buffer @samp{*scratch*} exists and is still in Fundamental mode @code{initial-major-mode}. @item -If started on a text-only terminal, it loads the terminal-specific +If started on a text terminal, it loads the terminal-specific Lisp library, which is specified by the variable @code{term-file-prefix} (@pxref{Terminal-Specific}). This is not done in @code{--batch} mode, nor if @code{term-file-prefix} is @code{nil}. @@ -600,7 +600,7 @@ directly does not run this hook. @subsection Suspending Emacs @cindex suspending Emacs - On text-only terminals, it is possible to @dfn{suspend Emacs}, which + On text terminals, it is possible to @dfn{suspend Emacs}, which means stopping Emacs temporarily and returning control to its superior process, which is usually the shell. This allows you to resume editing later in the same Emacs process, with the same buffers, the @@ -740,10 +740,10 @@ terminal object, a frame (meaning the terminal for that frame), or @deffn Command suspend-frame This command @dfn{suspends} a frame. For GUI frames, it calls -@code{iconify-frame} (@pxref{Visibility of Frames}); for text-only -frames, it calls either @code{suspend-emacs} or @code{suspend-tty}, -depending on whether the frame is displayed on the controlling -terminal device or not. +@code{iconify-frame} (@pxref{Visibility of Frames}); for frames on +text terminals, it calls either @code{suspend-emacs} or +@code{suspend-tty}, depending on whether the frame is displayed on the +controlling terminal device or not. @end deffn @node System Environment diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index 1dac75107fb..a92a807b747 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi @@ -994,7 +994,7 @@ Frames * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index d5c14fc7150..97b21aba10b 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi @@ -993,7 +993,7 @@ Frames * Window System Selections::Transferring text to and from other X clients. * Drag and Drop:: Internals of Drag-and-Drop implementation. * Color Names:: Getting the definitions of color names. -* Text Terminal Colors:: Defining colors for text-only terminals. +* Text Terminal Colors:: Defining colors for text terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 98263f4093c..07be7fa9079 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -68,7 +68,7 @@ window, and the contents of the selected message in another window. graphical desktop environments and window systems, such as the X Window System. When Emacs is run on X, each of its graphical X windows is an Emacs frame (containing one or more Emacs windows). -When Emacs is run on a text-only terminal, the frame fills the entire +When Emacs is run on a text terminal, the frame fills the entire terminal screen. @cindex tiled windows @@ -2964,8 +2964,8 @@ the bottommost row. Note that these are the actual outer edges of the window, including any header line, mode line, scroll bar, fringes, and display margins. -On a text-only terminal, if the window has a neighbor on its right, -its right edge includes the separator line between the window and its +On a text terminal, if the window has a neighbor on its right, its +right edge includes the separator line between the window and its neighbor. @end defun @@ -3046,8 +3046,8 @@ argument because it always uses the frame that @var{window} is on. The following functions return window positions in pixels, rather than character units. Though mostly useful on graphical displays, -they can also be called on text-only terminals, where the screen area -of each text character is taken to be ``one pixel''. +they can also be called on text terminals, where the screen area of +each text character is taken to be ``one pixel''. @defun window-pixel-edges &optional window This function returns a list of pixel coordinates for the edges of diff --git a/etc/NEWS b/etc/NEWS index 1c733ae5de7..2629155110f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -542,7 +542,6 @@ point motion, do not alter the primary selection. *** mouse-2 is now bound to `mouse-yank-primary'. This pastes from the primary selection, ignoring the kill-ring. Previously, mouse-2 was bound to `mouse-yank-at-click'. - +++ *** `x-select-enable-clipboard' now defaults to t on all platforms. +++ @@ -569,7 +568,7 @@ between applications. +++ *** Support for X cut buffers has been removed. - ++++ *** X clipboard managers are now supported. To inhibit this, change `x-select-enable-clipboard-manager' to nil. @@ -1118,7 +1117,9 @@ x-make-font-unitalic (make-face-unitalic), mldrag-drag-mode-line (mouse-drag-mode-line), mldrag-drag-vertical-line (mouse-drag-vertical-line), iswitchb-default-keybindings (iswitchb-mode), char-bytes (== 1), -isearch-return-char (isearch-printing-char), make-local-hook (not needed) +isearch-return-char (isearch-printing-char), make-local-hook (not needed), +set-screen-height (set-frame-height), set-screen-width (set-frame-width) + +++ ** The following obsolete (mostly since at least 21.1) variables and varaliases