]> code.delx.au - gnu-emacs/blobdiff - doc/emacs/frames.texi
Update copyright year to 2015
[gnu-emacs] / doc / emacs / frames.texi
index fee91d370c3f3ebc50accd36f288709aac09f91c..b5b9dbd7daac1780b4b64409e9403689157a15d1 100644 (file)
@@ -1,12 +1,12 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2012
-@c   Free Software Foundation, Inc.
+@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2015 Free Software
+@c Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Frames
 @chapter Frames and Graphical Displays
 @cindex frames
 
-  When Emacs is started on a graphical display, e.g.@: on the X Window
+  When Emacs is started on a graphical display, e.g., on the X Window
 System, it occupies a graphical system-level ``window''.  In this
 manual, we call this a @dfn{frame}, reserving the word ``window'' for
 the part of the frame used for displaying a buffer.  A frame initially
@@ -39,7 +39,7 @@ doing so on GNU and Unix systems; and
 @ifnottex
 @pxref{MS-DOS Mouse},
 @end ifnottex
-for doing so on MS-DOS).
+for doing so on MS-DOS).  Menus are supported on all text terminals.
 
 @menu
 * Mouse Commands::      Moving, cutting, and pasting, with the mouse.
@@ -77,12 +77,12 @@ for doing so on MS-DOS).
 Move point to where you click (@code{mouse-set-point}).
 
 @item Drag-Mouse-1
-Activate the region around the text selected by dragging, and copy it
-to the kill ring (@code{mouse-set-region}).
+Activate the region around the text selected by dragging, and put the
+text in the primary selection (@code{mouse-set-region}).
 
 @item Mouse-2
-Yank the last killed text at the click position
-(@code{mouse-yank-at-click}).
+Move point to where you click, and insert the contents of the primary
+selection there (@code{mouse-yank-primary}).
 
 @item Mouse-3
 If the region is active, move the nearer end of the region to the
@@ -136,7 +136,7 @@ the position where you clicked and inserts the contents of the primary
 selection (@code{mouse-yank-primary}).  @xref{Primary Selection}.
 This behavior is consistent with other X applications.  Alternatively,
 you can rebind @kbd{Mouse-2} to @code{mouse-yank-at-click}, which
-performs a yank at point.
+performs a yank at the position you click.
 
 @vindex mouse-yank-at-point
   If you change the variable @code{mouse-yank-at-point} to a
@@ -246,8 +246,8 @@ Select the text you drag across, in the form of whole lines.
 
 @vindex mouse-highlight
   Some Emacs buffers include @dfn{buttons}, or @dfn{hyperlinks}:
-pieces of text that perform some action (e.g.@: following a reference)
-when activated (e.g.@: by clicking on them).  Usually, a button's text
+pieces of text that perform some action (e.g., following a reference)
+when activated (e.g., by clicking on them).  Usually, a button's text
 is visually highlighted: it is underlined, or a box is drawn around
 it.  If you move the mouse over a button, the shape of the mouse
 cursor changes and the button lights up.  If you change the variable
@@ -376,6 +376,9 @@ position (@pxref{Split Window}).
 between two side-by-side mode lines, you can move the vertical
 boundary to the left or right.
 
+  Note that resizing windows is affected by the value of
+@code{window-resize-pixelwise}, see @ref{Split Window}.
+
 @node Creating Frames
 @section Creating Frames
 @cindex creating frames
@@ -453,8 +456,30 @@ cycles through all the frames on your terminal.
 @kindex C-x 5 1
 @findex delete-other-frames
 Delete all frames on the current terminal, except the selected one.
+
+@item M-<F10>
+@kindex M-<F10>
+@findex toggle-frame-maximized
+Toggle the maximization state of the current frame.  When a frame is
+maximized, it fills the screen.
+
+@item <F11>
+@kindex <F11>
+@findex toggle-frame-fullscreen
+Toggle fullscreen mode for the current frame.  (The difference
+between ``fullscreen'' and ``maximized'' is normally that the former
+hides window manager decorations, giving slightly more screen space to
+Emacs itself.)
 @end table
 
+@vindex frame-resize-pixelwise
+  Note that with some window managers you may have to customize the
+variable @code{frame-resize-pixelwise} to a non-@code{nil} value in
+order to make a frame truly ``maximized'' or ``fullscreen''.  This
+variable, when set to a non-@code{nil} value, in general allows
+resizing frames at pixel resolution, rather than in integral multiples
+of lines and columns.
+
   The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
 frame.  However, it will refuse to delete the last frame in an Emacs
 session, to prevent you from losing the ability to interact with the
@@ -484,13 +509,14 @@ the mouse cursor to the chosen frame.
 @cindex fonts
 
   By default, Emacs displays text on graphical displays using a
-12-point monospace font.  There are several different ways to specify
+10-point monospace font.  There are several different ways to specify
 a different font:
 
 @itemize
 @item
-Click on @samp{Set Default Font} in the @samp{Options} menu.  To save
-this for future sessions, click on @samp{Save Options} in the
+Click on @samp{Set Default Font} in the @samp{Options} menu.  This
+makes the selected font the default on all existing graphical frames.
+To save this for future sessions, click on @samp{Save Options} in the
 @samp{Options} menu.
 
 @item
@@ -503,6 +529,10 @@ Add a line to your init file, modifying the variable
              '(font . "DejaVu Sans Mono-10"))
 @end example
 
+@noindent
+This makes the font the default on all graphical frames created after
+restarting Emacs with that init file.
+
 @cindex X defaults file
 @cindex X resources file
 @item
@@ -631,7 +661,7 @@ Monospace Bold Italic 12
 @cindex X Logical Font Description
   The third way to specify a font is to use an @dfn{XLFD} (@dfn{X
 Logical Font Description}).  This is the traditional method for
-specifying fonts under X.  Each XLFD consists of fourteen words or
+specifying fonts under X@.  Each XLFD consists of fourteen words or
 numbers, separated by dashes, like this:
 
 @example
@@ -644,7 +674,7 @@ characters (including none), and @samp{?} matches any single
 character.  However, matching is implementation-dependent, and can be
 inaccurate when wildcards match dashes in a long name.  For reliable
 results, supply all 14 dashes and use wildcards only within a field.
-Case is insignificant in an XLFD.  The syntax for an XLFD is as
+Case is insignificant in an XLFD@.  The syntax for an XLFD is as
 follows:
 
 @example
@@ -659,7 +689,7 @@ The entries have the following meanings:
 @item maker
 The name of the font manufacturer.
 @item family
-The name of the font family (e.g.@: @samp{courier}).
+The name of the font family (e.g., @samp{courier}).
 @item weight
 The font weight---normally either @samp{bold}, @samp{medium} or
 @samp{light}.  Some font names support other values.
@@ -792,8 +822,8 @@ When a file or directory is expanded, the @samp{[+]} changes to
 hiding its contents.
 
   You navigate through the speedbar using the keyboard, too.  Typing
-@kbd{RET} while point is on a line in the speedbar is equivalent to
-clicking the item on the current line, and @kbd{SPC} expands or
+@key{RET} while point is on a line in the speedbar is equivalent to
+clicking the item on the current line, and @key{SPC} expands or
 contracts the item.  @kbd{U} displays the parent directory of the
 current directory.  To copy, delete, or rename the file on the current
 line, type @kbd{C}, @kbd{D}, and @kbd{R} respectively.  To create a
@@ -881,10 +911,11 @@ those are drawn by the toolkit and not directly by Emacs.
 @section Scroll Bars
 @cindex Scroll Bar mode
 @cindex mode, Scroll Bar
+@cindex Vertical Scroll Bar
 
-  On graphical displays, there is a @dfn{scroll bar} on the side of
-each Emacs window.  Clicking @kbd{Mouse-1} on the scroll bar's up and
-down buttons scrolls the window by one line at a time.  Clicking
+  On graphical displays, there is a @dfn{vertical scroll bar} on the
+side of each Emacs window.  Clicking @kbd{Mouse-1} on the scroll bar's
+up and down buttons scrolls the window by one line at a time.  Clicking
 @kbd{Mouse-1} above or below the scroll bar's inner box scrolls the
 window by nearly the entire height of the window, like @kbd{M-v} and
 @kbd{C-v} respectively (@pxref{Moving Point}).  Dragging the inner box
@@ -898,28 +929,75 @@ in the scroll bar lets you drag the inner box up and down.
 
 @findex scroll-bar-mode
 @findex toggle-scroll-bar
-  To toggle the use of scroll bars, type @kbd{M-x scroll-bar-mode}.
-This command applies to all frames, including frames yet to be
-created.  To toggle scroll bars for just the selected frame, use the
-command @kbd{M-x toggle-scroll-bar}.
+  To toggle the use of vertical scroll bars, type @kbd{M-x
+scroll-bar-mode}.  This command applies to all frames, including frames
+yet to be created.  To toggle vertical scroll bars for just the selected
+frame, use the command @kbd{M-x toggle-scroll-bar}.
 
 @vindex scroll-bar-mode
-  To control the use of scroll bars at startup, customize the variable
-@code{scroll-bar-mode}.  Its value should be either @code{right} (put
-scroll bars on the right side of windows), @code{left} (put them on
-the left), or @code{nil} (disable scroll bars).  By default, Emacs
-puts scroll bars on the right if it was compiled with GTK+ support on
-the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll
-bars on the left if compiled on the X Window System without GTK+
-support (following the old convention for X applications).
+  To control the use of vertical scroll bars at startup, customize the
+variable @code{scroll-bar-mode}.  Its value should be either
+@code{right} (put scroll bars on the right side of windows), @code{left}
+(put them on the left), or @code{nil} (disable vertical scroll bars).
+By default, Emacs puts scroll bars on the right if it was compiled with
+GTK+ support on the X Window System, and on MS-Windows or Mac OS; Emacs
+puts scroll bars on the left if compiled on the X Window System without
+GTK+ support (following the old convention for X applications).
 
 @vindex scroll-bar-width
-@cindex width of the scroll bar
+@cindex width of the vertical scroll bar
   You can also use the X resource @samp{verticalScrollBars} to enable
 or disable the scroll bars (@pxref{Resources}).  To control the scroll
 bar width, change the @code{scroll-bar-width} frame parameter
 (@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
 
+@vindex scroll-bar-adjust-thumb-portion
+@cindex overscrolling
+If you're using Emacs on X (with GTK+ or Motif), you can customize the
+variable @code{scroll-bar-adjust-thumb-portion} to control
+@dfn{overscrolling} of the scroll bar, i.e. dragging the thumb down even
+when the end of the buffer is visible.  If its value is
+non-@code{nil}, the scroll bar can be dragged downwards even if the
+end of the buffer is shown; if @code{nil}, the thumb will be at the
+bottom when the end of the buffer is shown.  You can not over-scroll
+when the entire buffer is visible.
+
+@cindex scroll-bar face
+  The visual appearance of the scroll bars is controlled by the
+@code{scroll-bar} face.
+
+@cindex Horizontal Scroll Bar
+@cindex Horizontal Scroll Bar mode
+  On graphical displays with toolkit support, Emacs may also supply a
+@dfn{horizontal scroll bar} on the bottom of each window.  Clicking
+@kbd{Mouse-1} on the that scroll bar's left and right buttons scrolls
+the window horizontally by one column at a time.  Clicking @kbd{Mouse-1}
+on the left or right of the scroll bar's inner box scrolls the window by
+four columns.  Dragging the inner box scrolls the window continuously.
+
+  Note that such horizontal scrolling can make the window's position of
+point disappear on the left or the right.  Typing a character to insert
+text or moving point with a keyboard command will usually bring it back
+into view.
+
+@findex horizontal-scroll-bar-mode
+  To toggle the use of horizontal scroll bars, type @kbd{M-x
+horizontal-scroll-bar-mode}.  This command applies to all frames,
+including frames yet to be created.  To toggle horizontal scroll bars
+for just the selected frame, use the command @kbd{M-x
+toggle-horizontal-scroll-bar}.
+
+@vindex horizontal-scroll-bar-mode
+  To control the use of horizontal scroll bars at startup, customize the
+variable @code{horizontal-scroll-bar-mode}.
+
+@vindex scroll-bar-height
+@cindex height of the horizontal scroll bar
+  You can also use the X resource @samp{horizontalScrollBars} to enable
+or disable horizontal scroll bars (@pxref{Resources}).  To control the
+scroll bar height, change the @code{scroll-bar-height} frame parameter
+(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
+
 @node Drag and Drop
 @section Drag and Drop
 @cindex drag and drop
@@ -1067,7 +1145,7 @@ attributes of the tooltip text are specified by the @code{tooltip}
 face, and by X resources (@pxref{X Resources}).
 
   @dfn{GUD tooltips} are special tooltips that show the values of
-variables when debugging a program with GUD.  @xref{Debugger
+variables when debugging a program with GUD@.  @xref{Debugger
 Operation}.
 
 @node Mouse Avoidance
@@ -1092,17 +1170,19 @@ to various values to move the mouse in several ways:
 
 @table @code
 @item banish
-Move the mouse to the upper-right corner on any key-press;
+Move the pointer to a corner of the frame on any key-press.  You can
+customize the variable @code{mouse-avoidance-banish-position} to
+specify where the pointer goes when it is banished.
 @item exile
-Move the mouse to the corner only if the cursor gets too close,
-and allow it to return once the cursor is out of the way;
+Banish the pointer only if the cursor gets too close, and allow it to
+return once the cursor is out of the way.
 @item jump
-If the cursor gets too close to the mouse, displace the mouse
-a random distance & direction;
+If the cursor gets too close to the pointer, displace the pointer by a
+random distance and direction.
 @item animate
-As @code{jump}, but shows steps along the way for illusion of motion;
+As @code{jump}, but shows steps along the way for illusion of motion.
 @item cat-and-mouse
-The same as @code{animate};
+The same as @code{animate}.
 @item proteus
 As @code{animate}, but changes the shape of the mouse pointer too.
 @end table