[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to frames.texi
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] Changes to frames.texi |
Date: |
Thu, 06 Sep 2007 04:46:09 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Glenn Morris <gm> 07/09/06 04:46:08
Index: frames.texi
===================================================================
RCS file: frames.texi
diff -N frames.texi
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ frames.texi 6 Sep 2007 04:46:08 -0000 1.1
@@ -0,0 +1,1113 @@
address@hidden This is part of the Emacs manual.
address@hidden Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999,
2000,
address@hidden 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
Foundation, Inc.
address@hidden See file emacs.texi for copying conditions.
address@hidden Frames, International, Windows, Top
address@hidden Frames and Graphical Displays
address@hidden frames
+
+ When using a graphical display, you can create multiple windows at
+the system in a single Emacs session. Each system-level window that
+belongs to Emacs displays a @dfn{frame} which can contain one or
+several Emacs windows. A frame initially contains a single
+general-purpose Emacs window which you can subdivide vertically or
+horizontally into smaller windows. A frame normally contains its own
+echo area and minibuffer, but you can make frames that don't have
+these---they use the echo area and minibuffer of another frame.
+
+ To avoid confusion, we reserve the word ``window'' for the
+subdivisions that Emacs implements, and never use it to refer to a
+frame.
+
+ Editing you do in one frame affects the other frames. For
+instance, if you put text in the kill ring in one frame, you can yank it
+in another frame. If you exit Emacs through @kbd{C-x C-c} in one frame,
+it terminates all the frames. To delete just one frame, use @kbd{C-x 5
+0} (that is zero, not @kbd{o}).
+
+ Emacs compiled for MS-DOS emulates some windowing functionality,
+so that you can use many of the features described in this chapter.
address@hidden
address@hidden Mouse,,,emacs-xtra,Specialized Emacs Features}.
address@hidden iftex
address@hidden
address@hidden Mouse}.
address@hidden ifnottex
+
address@hidden
+* Cut and Paste:: Mouse commands for cut and paste.
+* Mouse References:: Using the mouse to select an item from a list.
+* Menu Mouse Clicks:: Mouse clicks that bring up menus.
+* Mode Line Mouse:: Mouse clicks on the mode line.
+* Creating Frames:: Creating additional Emacs frames with various contents.
+* Frame Commands:: Iconifying, deleting, and switching frames.
+* Speedbar:: How to make and use a speedbar frame.
+* Multiple Displays:: How one Emacs job can talk to several displays.
+* Special Buffer Frames:: You can make certain buffers have their own frames.
+* Frame Parameters:: Changing the colors and other modes of frames.
+* Scroll Bars:: How to enable and disable scroll bars; how to
use them.
+* Wheeled Mice:: Using mouse wheels for scrolling.
+* Drag and Drop:: Using drag and drop to open files and insert text.
+* Menu Bars:: Enabling and disabling the menu bar.
+* Tool Bars:: Enabling and disabling the tool bar.
+* Dialog Boxes:: Controlling use of dialog boxes.
+* Tooltips:: Displaying information at the current mouse position.
+* Mouse Avoidance:: Moving the mouse pointer out of the way.
+* Non-Window Terminals:: Multiple frames on terminals that show only one.
+* Text-Only Mouse:: Using the mouse in text-only terminals.
address@hidden menu
+
address@hidden Cut and Paste
address@hidden Killing and Yanking on Graphical Displays
+
+ This section describes facilities for selecting a region, killing,
+and yanking using the mouse.
+
address@hidden
+* Mouse Commands:: Moving, cutting, and pasting, with the mouse.
+* Cut/Paste Other App:: Transfering text between Emacs and other apps.
+* Word and Line Mouse:: Mouse commands for selecting whole words or lines.
+* Secondary Selection:: Cutting without altering point and mark.
+* Clipboard:: Using the clipboard for selections.
address@hidden menu
+
address@hidden Mouse Commands
address@hidden Mouse Commands for Editing
address@hidden mouse buttons (what they do)
+
+ The mouse commands for selecting and copying a region are mostly
+compatible with the @code{xterm} program. You can use the same mouse
+commands for copying between Emacs and other window-based programs.
+Most of these commands also work in Emacs when you run it under an
address@hidden terminal.
+
address@hidden DELETE @r{(and mouse selection)}
+ If you select a region with any of these mouse commands, and then
+immediately afterward type the @key{DELETE} function key, it deletes the
+region that you selected. The @key{BACKSPACE} function key and the
address@hidden character @key{DEL} do not do this; if you type any other key
+in between the mouse command and @key{DELETE}, it does not do this.
+
address@hidden mouse-set-region
address@hidden mouse-set-point
address@hidden mouse-yank-at-click
address@hidden mouse-save-then-click
address@hidden Mouse-1
address@hidden Mouse-2
address@hidden Mouse-3
address@hidden @kbd
address@hidden Mouse-1
+Move point to where you click (@code{mouse-set-point}).
+This is normally the left button.
+
address@hidden x-mouse-click-focus-ignore-position
+Normally, Emacs does not distinguish between ordinary mouse clicks and
+clicks that select a frame. When you click on a frame to select it,
+that also changes the selected window and cursor position according to
+the mouse click position. On the X window system, you can change this
+behavior by setting the variable
address@hidden to @code{t}. Then the
+first click selects the frame, but does not affect the selected window
+or cursor position. If you click again in the same place, since that
+click will be in the selected frame, it will change the window or
+cursor position.
+
address@hidden Drag-Mouse-1
+Set the region to the text you select by dragging, and copy it to the
+kill ring (@code{mouse-set-region}). You can specify both ends of the
+region with this single command.
+
address@hidden mouse-scroll-min-lines
+If you move the mouse off the top or bottom of the window while
+dragging, the window scrolls at a steady rate until you move the mouse
+back into the window. This way, you can select regions that don't fit
+entirely on the screen. The number of lines scrolled per step depends
+on how far away from the window edge the mouse has gone; the variable
address@hidden specifies a minimum step size.
+
address@hidden mouse-drag-copy-region
+If the variable @code{mouse-drag-copy-region} is @code{nil}, this
+mouse command does not copy the selected region into the kill ring.
+
address@hidden Mouse-2
+Yank the last killed text, where you click (@code{mouse-yank-at-click}).
+This is normally the middle button.
+
address@hidden Mouse-3
+This command, @code{mouse-save-then-kill}, has several functions
+depending on where you click and the status of the region.
+
+The most basic case is when you click @kbd{Mouse-1} in one place and
+then @kbd{Mouse-3} in another. This selects the text between those two
+positions as the region. It also copies the new region to the kill
+ring, so that you can copy it to someplace else.
+
+If you click @kbd{Mouse-1} in the text, scroll with the scroll bar, and
+then click @kbd{Mouse-3}, it remembers where point was before scrolling
+(where you put it with @kbd{Mouse-1}), and uses that position as the
+other end of the region. This is so that you can select a region that
+doesn't fit entirely on the screen.
+
+More generally, if you do not have a highlighted region, @kbd{Mouse-3}
+selects the text between point and the click position as the region. It
+does this by setting the mark where point was, and moving point to where
+you click.
+
+If you have a highlighted region, or if the region was set just before
+by dragging button 1, @kbd{Mouse-3} adjusts the nearer end of the region
+by moving it to where you click. The adjusted region's text also
+replaces the old region's text in the kill ring.
+
+If you originally specified the region using a double or triple
address@hidden, so that the region is defined to consist of entire words
+or lines, then adjusting the region with @kbd{Mouse-3} also proceeds by
+entire words or lines.
+
+If you use @kbd{Mouse-3} a second time consecutively, at the same place,
+that kills the region already selected.
address@hidden table
+
+ The simplest way to kill text with the mouse is to press @kbd{Mouse-1}
+at one end, then press @kbd{Mouse-3} twice at the other end.
address@hidden To copy the text into the kill ring without deleting it
+from the buffer, press @kbd{Mouse-3} just once---or just drag across the
+text with @kbd{Mouse-1}. Then you can copy it elsewhere by yanking it.
+
address@hidden mouse-yank-at-point
+ To yank the killed or copied text somewhere else, move the mouse there
+and press @kbd{Mouse-2}. @xref{Yanking}. However, if
address@hidden is address@hidden, @kbd{Mouse-2} yanks at
+point. Then it does not matter where you click, or even which of the
+frame's windows you click on. The default value is @code{nil}. This
+variable also affects yanking the secondary selection.
+
address@hidden Delete Selection mode
address@hidden mode, Delete Selection
address@hidden delete-selection-mode
+ Many graphical applications follow the convention that insertion while text
+is selected deletes the selected text. You can make Emacs behave this
+way by enabling Delete Selection mode---with @kbd{M-x
+delete-selection-mode} or using Custom. Another effect of this mode
+is that @key{DEL}, @kbd{C-d} and some other keys, when a selection
+exists, will kill the whole selection. It also enables Transient Mark
+mode (@pxref{Transient Mark}).
+
address@hidden Cut/Paste Other App
address@hidden Cut and Paste with Other Window Applications
+
address@hidden cutting
address@hidden pasting
address@hidden X cutting and pasting
+ To copy text to another windowing application, kill it or save it in
+the kill ring. Then use the ``paste'' or ``yank'' command of the
+other application to insert the text.
+
+ To copy text from another windowing application, use its ``cut'' or
+``copy'' command to select the text you want. Then yank it in Emacs
+with @kbd{C-y} or @kbd{Mouse-2}.
+
address@hidden primary selection
address@hidden cut buffer
address@hidden selection, primary
address@hidden x-cut-buffer-max
+ When Emacs puts text into the kill ring, or rotates text to the
+front of the kill ring, it sets the @dfn{primary selection} in the
+window system. This is how other windowing applications can access
+the text. On the X Window System, emacs also stores the text in the
+cut buffer, but only if the text is short enough (the value of
address@hidden specifies the maximum number of characters);
+putting long strings in the cut buffer can be slow.
+
+ The commands to yank the first entry in the kill ring actually check
+first for a primary selection in another program; after that, they check
+for text in the cut buffer. If neither of those sources provides text
+to yank, the kill ring contents are used.
+
+ The standard coding system for X Window System selections is
address@hidden To specify another coding
+system for selections, use @kbd{C-x @key{RET} x} or @kbd{C-x @key{RET}
+X}. @xref{Communication Coding}.
+
address@hidden Word and Line Mouse
address@hidden Mouse Commands for Words and Lines
+
+ These variants of @kbd{Mouse-1} select entire words or lines at a time.
+
address@hidden @kbd
address@hidden Double-Mouse-1
+This key sets the region around the word which you click on. If you
+click on a character with ``symbol'' syntax (such as underscore, in C
+mode), it sets the region around the symbol surrounding that character.
+
+If you click on a character with open-parenthesis or close-parenthesis
+syntax, it sets the region around the parenthetical grouping
+which that character starts or ends. If you click on a character with
+string-delimiter syntax (such as a singlequote or doublequote in C), it
+sets the region around the string constant (using heuristics to figure
+out whether that character is the beginning or the end of it).
+
address@hidden Double-Drag-Mouse-1
+This key selects a region made up of the words you drag across.
+
address@hidden Triple-Mouse-1
+This key sets the region around the line you click on.
+
address@hidden Triple-Drag-Mouse-1
+This key selects a region made up of the lines you drag across.
address@hidden table
+
address@hidden Secondary Selection
address@hidden Secondary Selection
address@hidden secondary selection
+
+ The @dfn{secondary selection} is another way of selecting text using
+the X Window System. It does not use point or the mark, so you can
+use it to kill text without setting point or the mark.
+
address@hidden @kbd
address@hidden mouse-set-secondary
address@hidden M-Drag-Mouse-1
address@hidden M-Drag-Mouse-1
+Set the secondary selection, with one end at the place where you press
+down the button, and the other end at the place where you release it
+(@code{mouse-set-secondary}). The highlighting appears and changes as
+you drag. You can control the appearance of the highlighting by
+customizing the @code{secondary-selection} face (@pxref{Face
+Customization}).
+
+If you move the mouse off the top or bottom of the window while
+dragging, the window scrolls at a steady rate until you move the mouse
+back into the window. This way, you can mark regions that don't fit
+entirely on the screen.
+
+This way of setting the secondary selection does not alter the kill ring.
+
address@hidden mouse-start-secondary
address@hidden M-Mouse-1
address@hidden M-Mouse-1
+Set one endpoint for the @dfn{secondary selection}
+(@code{mouse-start-secondary}).
+
address@hidden mouse-secondary-save-then-kill
address@hidden M-Mouse-3
address@hidden M-Mouse-3
+Make a secondary selection, using the place specified with @kbd{M-Mouse-1}
+as the other end (@code{mouse-secondary-save-then-kill}). This also
+puts the selected text in the kill ring. A second click at the same
+place kills the secondary selection just made.
+
address@hidden mouse-yank-secondary
address@hidden M-Mouse-2
address@hidden M-Mouse-2
+Insert the secondary selection where you click
+(@code{mouse-yank-secondary}). This places point at the end of the
+yanked text.
address@hidden table
+
+Double or triple clicking of @kbd{M-Mouse-1} operates on words and
+lines, much like @kbd{Mouse-1}.
+
+If @code{mouse-yank-at-point} is address@hidden, @kbd{M-Mouse-2} yanks
+at point. Then it does not matter precisely where you click, or even
+which of the frame's windows you click on. @xref{Mouse Commands}.
+
address@hidden Clipboard
address@hidden Using the Clipboard
address@hidden clipboard
address@hidden x-select-enable-clipboard
address@hidden menu-bar-enable-clipboard
address@hidden OpenWindows
address@hidden Gnome
+
+ Apart from the primary and secondary selection types, Emacs can
+handle the @dfn{clipboard} selection type which is used by some
+applications, particularly under OpenWindows and Gnome.
+
+ The command @kbd{M-x menu-bar-enable-clipboard} makes the @code{Cut},
address@hidden and @code{Copy} menu items, as well as the keys of the same
+names, all use the clipboard.
+
+ You can customize the variable @code{x-select-enable-clipboard} to make
+the Emacs yank functions consult the clipboard before the primary
+selection, and to make the kill functions to store in the clipboard as
+well as the primary selection. Otherwise they do not access the
+clipboard at all. Using the clipboard is the default on MS-Windows and Mac,
+but not on other systems.
+
address@hidden Mouse References
address@hidden Following References with the Mouse
address@hidden Mouse-1 @r{(selection)}
address@hidden Mouse-2 @r{(selection)}
+
+ Some read-only Emacs buffers include references you can follow, or
+commands you can activate. These include names of files, of buffers,
+of possible completions, of matches for a pattern, as well as the
+buttons in Help buffers and customization buffers. You can follow the
+reference or activate the command by moving point to it and typing
address@hidden You can also do this with the mouse, using either
address@hidden or @kbd{Mouse-2}.
+
+ Since yanking text into a read-only buffer is not allowed, these
+buffers generally define @kbd{Mouse-2} to follow a reference or
+activate a command. For example, if you click @kbd{Mouse-2} on a file
+name in a Dired buffer, you visit that file. If you click
address@hidden on an error message in the @samp{*Compilation*} buffer,
+you go to the source code for that error message. If you click
address@hidden on a completion in the @samp{*Completions*} buffer, you
+choose that completion.
+
+ However, most applications use @kbd{Mouse-1} to do this sort of
+thing, so Emacs implements this too. If you click @kbd{Mouse-1}
+quickly on a reference or button, it follows or activates. If you
+click slowly, it moves point as usual. Dragging, meaning moving the
+mouse while it is held down, also has its usual behavior of setting
+the region.
+
address@hidden mouse-1-click-in-non-selected-windows
+ Normally, the @kbd{Mouse-1} click behavior is performed on links in
+any window. The variable @code{mouse-1-click-in-non-selected-windows}
+controls whether @kbd{Mouse-1} has this behavior even in non-selected
+windows, or only in the selected window.
+
address@hidden mouse-highlight
+ You can usually tell when @kbd{Mouse-1} and @kbd{Mouse-2} have this
+special sort of meaning because the sensitive text highlights when you
+move the mouse over it. The variable @code{mouse-highlight} controls
+whether to do this highlighting always (even when such text appears
+where the mouse already is), never, or only immediately after you move
+the mouse.
+
address@hidden mouse-1-click-follows-link
+ In Emacs versions before 22, only @kbd{Mouse-2} follows links and
address@hidden always sets point. If you prefer this older behavior,
+set the variable @code{mouse-1-click-follows-link} to @code{nil}.
+This variable also lets you choose various other alternatives for
+following links with the mouse. Type @kbd{C-h v
+mouse-1-click-follows-link @key{RET}} for more details.
+
address@hidden Menu Mouse Clicks
address@hidden Mouse Clicks for Menus
+
+ Several mouse clicks with the @key{CTRL} and @key{SHIFT} modifiers
+bring up menus.
+
address@hidden @kbd
address@hidden C-Mouse-1
address@hidden C-Mouse-1
+This menu is for selecting a buffer.
+
+The MSB (``mouse select buffer'') global minor mode makes this
+menu smarter and more customizable. @xref{Buffer Menus}.
+
address@hidden C-Mouse-2
address@hidden C-Mouse-2
+This menu is for specifying faces and other text properties
+for editing formatted text. @xref{Formatted Text}.
+
address@hidden C-Mouse-3
address@hidden C-Mouse-3
+This menu is mode-specific. For most modes if Menu-bar mode is on,
+this menu has the same items as all the mode-specific menu-bar menus
+put together. Some modes may specify a different menu for this
address@hidden systems use @kbd{Mouse-3} for a mode-specific
+menu. We took a survey of users, and found they preferred to keep
address@hidden for selecting and killing regions. Hence the decision
+to use @kbd{C-Mouse-3} for this menu. To use @kbd{Mouse-3} instead,
+do @code{(global-set-key [mouse-3] 'mouse-popup-menubar-stuff)}.} If
+Menu-bar mode is off, this menu contains all the items which would be
+present in the menu bar---not just the mode-specific ones---so that
+you can access them without having to display the menu bar.
+
address@hidden S-Mouse-1
+This menu is for specifying the frame's default font.
address@hidden table
+
address@hidden Mode Line Mouse
address@hidden Mode Line Mouse Commands
address@hidden mode line, mouse
address@hidden mouse on mode line
+
+ You can use mouse clicks on window mode lines to select and manipulate
+windows.
+
+ Some areas of the mode line, such as the buffer name and the major
+mode name, have their own special mouse bindings. These areas are
+highlighted when you hold the mouse over them, and information about
+the special bindings will be displayed (@pxref{Tooltips}). This
+section's commands do not apply in those areas.
+
address@hidden @kbd
address@hidden Mouse-1
address@hidden Mouse-1 @r{(mode line)}
address@hidden on a mode line selects the window it belongs to. By
+dragging @kbd{Mouse-1} on the mode line, you can move it, thus
+changing the height of the windows above and below. Changing heights
+with the mouse in this way never deletes windows, it just refuses to
+make any window smaller than the minimum height.
+
address@hidden Mouse-2
address@hidden Mouse-2 @r{(mode line)}
address@hidden on a mode line expands that window to fill its frame.
+
address@hidden Mouse-3
address@hidden Mouse-3 @r{(mode line)}
address@hidden on a mode line deletes the window it belongs to. If the
+frame has only one window, it buries the current buffer instead, and
+switches to another buffer.
+
address@hidden C-Mouse-2
address@hidden C-mouse-2 @r{(mode line)}
address@hidden on a mode line splits the window above
+horizontally, above the place in the mode line where you click.
address@hidden table
+
address@hidden C-Mouse-2 @r{(scroll bar)}
address@hidden Mouse-1 @r{(scroll bar)}
+ Using @kbd{Mouse-1} on the divider between two side-by-side mode
+lines, you can move the vertical boundary left or right. Using
address@hidden on a scroll bar splits the corresponding window
+vertically. @xref{Split Window}.
+
address@hidden Creating Frames
address@hidden Creating Frames
address@hidden creating frames
+
address@hidden C-x 5
+ The prefix key @kbd{C-x 5} is analogous to @kbd{C-x 4}, with parallel
+subcommands. The difference is that @kbd{C-x 5} commands create a new
+frame rather than just a new window in the selected frame (@pxref{Pop
+Up Window}). If an existing visible or iconified frame already displays
+the requested material, these commands use the existing frame, after
+raising or deiconifying as necessary.
+
+ The various @kbd{C-x 5} commands differ in how they find or create the
+buffer to select:
+
address@hidden @kbd
address@hidden C-x 5 2
address@hidden C-x 5 2
address@hidden make-frame-command
+Create a new frame (@code{make-frame-command}).
address@hidden C-x 5 b @var{bufname} @key{RET}
+Select buffer @var{bufname} in another frame. This runs
address@hidden
address@hidden C-x 5 f @var{filename} @key{RET}
+Visit file @var{filename} and select its buffer in another frame. This
+runs @code{find-file-other-frame}. @xref{Visiting}.
address@hidden C-x 5 d @var{directory} @key{RET}
+Select a Dired buffer for directory @var{directory} in another frame.
+This runs @code{dired-other-frame}. @xref{Dired}.
address@hidden C-x 5 m
+Start composing a mail message in another frame. This runs
address@hidden It is the other-frame variant of @kbd{C-x m}.
address@hidden Mail}.
address@hidden C-x 5 .
+Find a tag in the current tag table in another frame. This runs
address@hidden, the multiple-frame variant of @kbd{M-.}.
address@hidden
address@hidden C-x 5 r @var{filename} @key{RET}
address@hidden C-x 5 r
address@hidden find-file-read-only-other-frame
+Visit file @var{filename} read-only, and select its buffer in another
+frame. This runs @code{find-file-read-only-other-frame}.
address@hidden
address@hidden table
+
address@hidden default-frame-alist
address@hidden initial-frame-alist
address@hidden face customization, in @file{~/.emacs}
address@hidden color customization, in @file{~/.emacs}
+ You can control the appearance of new frames you create by setting the
+frame parameters in @code{default-frame-alist}. You can use the
+variable @code{initial-frame-alist} to specify parameters that affect
+only the initial frame. @xref{Initial Parameters,,, elisp, The Emacs
+Lisp Reference Manual}, for more information.
+
address@hidden font (default)
+ The easiest way to specify the principal font for all your Emacs
+frames is with an X resource (@pxref{Font X}), but you can also do it by
+modifying @code{default-frame-alist} to specify the @code{font}
+parameter, as shown here:
+
address@hidden
+(add-to-list 'default-frame-alist '(font . "10x20"))
address@hidden example
+
address@hidden
+Here's a similar example for specifying a foreground color:
+
address@hidden
+(add-to-list 'default-frame-alist '(foreground-color . "blue"))
address@hidden example
+
address@hidden
+By putting such customizations in your @file{~/.emacs} init file, you
+can control the appearance of all the frames Emacs creates, including
+the initial one.
+
address@hidden Frame Commands
address@hidden Frame Commands
+
+ The following commands let you create, delete and operate on frames:
+
address@hidden @kbd
address@hidden C-z
address@hidden C-z @r{(X windows)}
address@hidden iconify-or-deiconify-frame
+Iconify the selected Emacs frame (@code{iconify-or-deiconify-frame}).
+When typed on an Emacs frame's icon, deiconify instead.
+
+The normal meaning of @kbd{C-z}, to suspend Emacs, is not useful under
+a graphical display that allows multiple applications to operate
+simultaneously in their own windows, so Emacs gives @kbd{C-z} a
+different binding in that case.
+
address@hidden C-x 5 0
address@hidden C-x 5 0
address@hidden delete-frame
+Delete the selected frame (@code{delete-frame}). This is not allowed if
+there is only one frame.
+
address@hidden C-x 5 o
address@hidden C-x 5 o
address@hidden other-frame
+Select another frame, raise it, and warp the mouse to it so that it
+stays selected. If you repeat this command, it cycles through all the
+frames on your terminal.
+
address@hidden C-x 5 1
address@hidden C-x 5 1
address@hidden delete-other-frames
+Delete all frames except the selected one.
address@hidden table
+
address@hidden focus-follows-mouse
+ To make the command @kbd{C-x 5 o} work properly, you must tell Emacs
+how the system (or the window manager) generally handles
+focus-switching between windows. There are two possibilities: either
+simply moving the mouse onto a window selects it (gives it focus), or
+you have to click on it in a suitable way to do so. On X, this focus
+policy also affects whether the focus is given to a frame that Emacs
+raises. Unfortunately there is no way Emacs can find out
+automatically which way the system handles this, so you have to
+explicitly say, by setting the variable @code{focus-follows-mouse}.
+If just moving the mouse onto a window selects it, that variable
+should be @code{t}; if a click is necessary, the variable should be
address@hidden
+
+The window manager that is part of MS-Windows always gives focus to a
+frame that raises, so this variable has no effect in the native
+MS-Windows build of Emacs.
+
address@hidden Speedbar
address@hidden Speedbar Frames
address@hidden speedbar
+
address@hidden attached frame (of speedbar)
+ The @dfn{speedbar} is a special frame for conveniently navigating in
+or operating on another frame. The speedbar, when it exists, is
+always associated with a specific frame, called its @dfn{attached
+frame}; all speedbar operations act on that frame.
+
+ Type @kbd{M-x speedbar} to create the speedbar and associate it with
+the current frame. To dismiss the speedbar, type @kbd{M-x speedbar}
+again, or select the speedbar and type @kbd{q}. (You can also delete
+the speedbar frame like any other Emacs frame.) If you wish to
+associate the speedbar with a different frame, dismiss it and call
address@hidden speedbar} from that frame.
+
+ The speedbar can operate in various modes. Its default mode is
address@hidden Display} mode, which shows the files in the current
+directory of the selected window of the attached frame, one file per
+line. Clicking on a file name visits that file in the selected window
+of the attached frame, and clicking on a directory name shows that
+directory in the speedbar (@pxref{Mouse References}). Each line also
+has a box, @samp{[+]} or @samp{<+>}, that you can click on to
address@hidden the contents of that item. Expanding a directory adds
+the contents of that directory to the speedbar display, underneath the
+directory's own line. Expanding an ordinary file adds a list of the
+tags in that file to the speedbar display; you can click on a tag name
+to jump to that tag in the selected window of the attached frame.
+When a file or directory is expanded, the @samp{[+]} changes to
address@hidden; you can click on that box to @dfn{contract} the item,
+hiding its contents.
+
+ You navigate through the speedbar using the keyboard, too. Typing
address@hidden while point is on a line in the speedbar is equivalent to
+clicking the item on the current line, and @kbd{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
+new directory, type @kbd{M}.
+
+ Another general-purpose speedbar mode is @dfn{Buffer Display} mode;
+in this mode, the speedbar displays a list of Emacs buffers. To
+switch to this mode, type @kbd{b} in the speedbar. To return to File
+Display mode, type @kbd{f}. You can also change the display mode by
+clicking @kbd{mouse-3} anywhere in the speedbar window (or
address@hidden on the mode-line) and selecting @samp{Displays} in the
+pop-up menu.
+
+ Some major modes, including Rmail mode, Info, and GUD, have
+specialized ways of putting useful items into the speedbar for you to
+select. For example, in Rmail mode, the speedbar shows a list of Rmail
+files, and lets you move the current message to another Rmail file by
+clicking on its @samp{<M>} box.
+
+ For more details on using and programming the speedbar, @xref{Top,
+Speedbar,,speedbar, Speedbar Manual}.
+
address@hidden Multiple Displays
address@hidden Multiple Displays
address@hidden multiple displays
+
+ A single Emacs can talk to more than one X display. Initially, Emacs
+uses just one display---the one specified with the @env{DISPLAY}
+environment variable or with the @samp{--display} option (@pxref{Initial
+Options}). To connect to another display, use the command
address@hidden:
+
address@hidden make-frame-on-display
address@hidden @kbd
address@hidden M-x make-frame-on-display @key{RET} @var{display} @key{RET}
+Create a new frame on display @var{display}.
address@hidden table
+
+ A single X server can handle more than one screen. When you open
+frames on two screens belonging to one server, Emacs knows they share a
+single keyboard, and it treats all the commands arriving from these
+screens as a single stream of input.
+
+ When you open frames on different X servers, Emacs makes a separate
+input stream for each server. This way, two users can type
+simultaneously on the two displays, and Emacs will not garble their
+input. Each server also has its own selected frame. The commands you
+enter with a particular X server apply to that server's selected frame.
+
+ Despite these features, people using the same Emacs job from different
+displays can still interfere with each other if they are not careful.
+For example, if any one types @kbd{C-x C-c}, that exits the Emacs job
+for all of them!
+
address@hidden Special Buffer Frames
address@hidden Special Buffer Frames
+
address@hidden special-display-buffer-names
+ You can make certain chosen buffers, which Emacs normally displays
+in ``another window,'' appear in special frames of their own. To do
+this, set the variable @code{special-display-buffer-names} to a list
+of buffer names; any buffer whose name is in that list automatically
+gets a special frame, when an Emacs command wants to display it ``in
+another window.''
+
+ For example, if you set the variable this way,
+
address@hidden
+(setq special-display-buffer-names
+ '("*Completions*" "*grep*" "*tex-shell*"))
address@hidden example
+
address@hidden
+then completion lists, @code{grep} output and the @TeX{} mode shell
+buffer get individual frames of their own. These frames, and the
+windows in them, are never automatically split or reused for any other
+buffers. They continue to show the buffers they were created for,
+unless you alter them by hand. Killing the special buffer deletes its
+frame automatically.
+
address@hidden special-display-regexps
+ More generally, you can set @code{special-display-regexps} to a list
+of regular expressions; then a buffer gets its own frame if its name
+matches any of those regular expressions. (Once again, this applies only
+to buffers that normally get displayed for you in ``another window.'')
+
address@hidden special-display-frame-alist
+ The variable @code{special-display-frame-alist} specifies the frame
+parameters for these frames. It has a default value, so you don't need
+to set it.
+
+ For those who know Lisp, an element of
address@hidden or @code{special-display-regexps}
+can also be a list. Then the first element is the buffer name or
+regular expression; the rest of the list specifies how to create the
+frame. It can be an association list specifying frame parameter
+values; these values take precedence over parameter values specified
+in @code{special-display-frame-alist}. If you specify the symbol
address@hidden as a ``frame parameter'' in this list, with a
address@hidden value, that means to use the selected window if
+possible. If you use the symbol @code{same-frame} as a ``frame
+parameter'' in this list, with a address@hidden value, that means to
+use the selected frame if possible.
+
+ Alternatively, the value can have this form:
+
address@hidden
+(@var{function} @var{args}...)
address@hidden example
+
address@hidden
+where @var{function} is a symbol. Then the frame is constructed by
+calling @var{function}; its first argument is the buffer, and its
+remaining arguments are @var{args}.
+
+ An analogous feature lets you specify buffers which should be
+displayed in the selected window. @xref{Force Same Window}. The
+same-window feature takes precedence over the special-frame feature;
+therefore, if you add a buffer name to
address@hidden and it has no effect, check to see
+whether that feature is also in use for the same buffer name.
+
address@hidden Frame Parameters
address@hidden Setting Frame Parameters
address@hidden Auto-Raise mode
address@hidden Auto-Lower mode
+
address@hidden S-Mouse-1
+ You can specify the font and colors used for text display, and the
+colors for the frame borders, the cursor, and the mouse cursor, by
+customizing the faces @code{default}, @code{border}, @code{cursor} and
address@hidden @xref{Face Customization}. You can also set a frame's
+default font through a pop-up menu. Press @kbd{S-Mouse-1} to activate
+this menu.
+
+ These commands are available for controlling the window management
+behavior of the selected frame.
+
address@hidden @kbd
address@hidden auto-raise-mode
address@hidden M-x auto-raise-mode
+Toggle whether or not the selected frame should auto-raise. Auto-raise
+means that every time you move the mouse onto the frame, it raises the
+frame.
+
+Some window managers also implement auto-raise. If you enable
+auto-raise for Emacs frames in your window manager, it will work, but
+it is beyond Emacs' control, so @code{auto-raise-mode} has no effect
+on it.
+
address@hidden auto-lower-mode
address@hidden M-x auto-lower-mode
+Toggle whether or not the selected frame should auto-lower.
+Auto-lower means that every time you move the mouse off the frame,
+the frame moves to the bottom of the stack on the screen.
+
+The command @code{auto-lower-mode} has no effect on auto-lower
+implemented by the window manager. To control that, you must use the
+appropriate window manager features.
address@hidden table
+
+ In Emacs versions that use an X toolkit, the color-setting and
+font-setting functions don't affect menus and the menu bar, since they
+are displayed by their own widget classes. To change the appearance of
+the menus and menu bar, you must use X resources (@pxref{Resources}).
address@hidden, regarding colors. @xref{Font X}, regarding choice of
+font.
+
+ Colors, fonts, and other attributes of the frame's display can also
+be customized by setting frame parameters in the variable
address@hidden (@pxref{Creating Frames}). For a detailed
+description of frame parameters and customization, see @ref{Frame
+Parameters,,, elisp, The Emacs Lisp Reference Manual}.
+
address@hidden Scroll Bars
address@hidden Scroll Bars
address@hidden Scroll Bar mode
address@hidden mode, Scroll Bar
+
+ On graphical displays, Emacs normally makes a @dfn{scroll bar} at
+the left of each Emacs address@hidden it at the left is
+usually more useful with overlapping frames with text starting at the
+left margin.} The scroll bar runs the height of the window, and shows
+a moving rectangular inner box which represents the portion of the
+buffer currently displayed. The entire height of the scroll bar
+represents the entire length of the buffer.
+
+ You can use @kbd{Mouse-2} (normally, the middle button) in the scroll
+bar to move or drag the inner box up and down. If you move it to the
+top of the scroll bar, you see the top of the buffer. If you move it to
+the bottom of the scroll bar, you see the bottom of the buffer.
+
+ The left and right buttons in the scroll bar scroll by controlled
+increments. @kbd{Mouse-1} (normally, the left button) moves the line at
+the level where you click up to the top of the window. @kbd{Mouse-3}
+(normally, the right button) moves the line at the top of the window
+down to the level where you click. By clicking repeatedly in the same
+place, you can scroll by the same distance over and over.
+
+ You can also click @kbd{C-Mouse-2} in the scroll bar to split a
+window vertically. The split occurs on the line where you click.
+
address@hidden scroll-bar-mode
address@hidden scroll-bar-mode
+ You can enable or disable Scroll Bar mode with the command @kbd{M-x
+scroll-bar-mode}. With no argument, it toggles the use of scroll
+bars. With an argument, it turns use of scroll bars on if and only if
+the argument is positive. This command applies to all frames,
+including frames yet to be created. Customize the variable
address@hidden to control the use of scroll bars at startup.
+You can use it to specify that they are placed at the right of windows
+if you prefer that. You have to set this variable through the
address@hidden interface (@pxref{Easy Customization}), or it will
+not work properly.
+
+ You can also use the X resource @samp{verticalScrollBars} to control
+the initial setting of Scroll Bar mode. @xref{Resources}.
+
address@hidden toggle-scroll-bar
+ To enable or disable scroll bars for just the selected frame, use the
+command @kbd{M-x toggle-scroll-bar}.
+
address@hidden scroll-bar-width
address@hidden width of the scroll bar
+ You can control the scroll bar width by changing the value of the
address@hidden frame parameter.
+
address@hidden Wheeled Mice
address@hidden Scrolling With ``Wheeled'' Mice
+
address@hidden mouse wheel
address@hidden wheel, mouse
address@hidden mouse-wheel-mode
address@hidden Mouse Wheel minor mode
address@hidden mode, Mouse Wheel
+ Some mice have a ``wheel'' instead of a third button. You can
+usually click the wheel to act as either @kbd{Mouse-2} or
address@hidden, depending on the setup. You can also use the wheel to
+scroll windows instead of using the scroll bar or keyboard commands.
+Mouse wheel support only works if the system generates appropriate
+events; whenever possible, it is turned on by default. To toggle this
+feature, use @kbd{M-x mouse-wheel-mode}.
+
address@hidden mouse-wheel-follow-mouse
address@hidden mouse-wheel-scroll-amount
address@hidden mouse-wheel-progressive-speed
+ The two variables @code{mouse-wheel-follow-mouse} and
address@hidden determine where and by how much
+buffers are scrolled. The variable
address@hidden determines whether the scroll
+speed is linked to how fast you move the wheel.
+
address@hidden Drag and Drop
address@hidden Drag and Drop
address@hidden drag and drop
+
+ Emacs supports @dfn{drag and drop} using the mouse. For instance,
+dropping text onto an Emacs frame inserts the text where it is dropped.
+Dropping a file onto an Emacs frame visits that file. As a special
+case, dropping the file on a Dired buffer moves or copies the file
+(according to the conventions of the application it came from) into the
+directory displayed in that buffer.
+
address@hidden dnd-open-file-other-window
+ Dropping a file normally visits it in the window you drop it on. If
+you prefer to visit the file in a new window in such cases, customize
+the variable @code{dnd-open-file-other-window}.
+
+ The XDND and Motif drag and drop protocols, and the old KDE 1.x
+protocol, are currently supported.
+
address@hidden Menu Bars
address@hidden Menu Bars
address@hidden Menu Bar mode
address@hidden mode, Menu Bar
address@hidden menu-bar-mode
address@hidden menu-bar-mode
+
+ You can turn display of menu bars on or off with @kbd{M-x
+menu-bar-mode} or by customizing the variable @code{menu-bar-mode}.
+With no argument, this command toggles Menu Bar mode, a
+minor mode. With an argument, the command turns Menu Bar mode on if the
+argument is positive, off if the argument is not positive. You can use
+the X resource @samp{menuBarLines} to control the initial setting of
+Menu Bar mode. @xref{Resources}.
+
address@hidden C-Mouse-3 @r{(when menu bar is disabled)}
+ Expert users often turn off the menu bar, especially on text-only
+terminals, where this makes one additional line available for text.
+If the menu bar is off, you can still pop up a menu of its contents
+with @kbd{C-Mouse-3} on a display which supports pop-up menus.
address@hidden Mouse Clicks}.
+
+ @xref{Menu Bar}, for information on how to invoke commands with the
+menu bar. @xref{X Resources}, for how to customize the menu bar
+menus' visual appearance.
+
address@hidden Tool Bars
address@hidden Tool Bars
address@hidden Tool Bar mode
address@hidden mode, Tool Bar
address@hidden icons, toolbar
+
+ The @dfn{tool bar} is a line (or lines) of icons at the top of the
+Emacs window, just below the menu bar. You can click on these icons
+with the mouse to do various jobs.
+
+ The global tool bar contains general commands. Some major modes
+define their own tool bars to replace it. A few ``special'' modes
+that are not designed for ordinary editing remove some items from the
+global tool bar.
+
+ Tool bars work only on a graphical display. The tool bar uses colored
+XPM icons if Emacs was built with XPM support. Otherwise, the tool
+bar uses monochrome icons (PBM or XBM format).
+
address@hidden tool-bar-mode
address@hidden tool-bar-mode
+ You can turn display of tool bars on or off with @kbd{M-x
+tool-bar-mode} or by customizing the option @code{tool-bar-mode}.
+
address@hidden Dialog Boxes
address@hidden Using Dialog Boxes
address@hidden dialog boxes
+
address@hidden use-dialog-box
+ A dialog box is a special kind of menu for asking you a yes-or-no
+question or some other special question. Many Emacs commands use a
+dialog box to ask a yes-or-no question, if you used the mouse to
+invoke the command to begin with.
+
+ You can customize the variable @code{use-dialog-box} to suppress the
+use of dialog boxes. This also controls whether to use file selection
+windows (but those are not supported on all platforms).
+
address@hidden use-file-dialog
+ A file selection window is a special kind of dialog box for asking
+for file names. You can customize the variable @code{use-file-dialog}
+to suppress the use of file selection windows, even if you still want
+other kinds of dialogs. This variable has no effect if you have
+suppressed all dialog boxes with the variable @code{use-dialog-box}.
+
address@hidden x-gtk-show-hidden-files
+ For Gtk+ version 2.4 and newer, Emacs use the Gtk+ file chooser
+dialog. Emacs adds a toggle button that enables and disables showing
+of hidden files (files starting with a dot) in that dialog. The
+variable @code{x-gtk-show-hidden-files} controls whether to show
+hidden files by default.
+
address@hidden x-gtk-use-old-file-dialog
+ For Gtk+ versions 2.4 through 2.10, you can select the old file
+dialog (@code{gtk-file-selector}) by setting the variable
address@hidden to a address@hidden value. If it is
address@hidden, Emacs uses @code{gtk-file-chooser}. If Emacs is built
+with a Gtk+ version that has only one file dialog, this variable has
+no effect.
+
address@hidden x-gtk-file-dialog-help-text
+ Emacs adds help text to the Gtk+ file chooser dialog. The variable
address@hidden specifies the text to add; if it is
address@hidden, that disables the added text.
+
address@hidden Tooltips
address@hidden Tooltips
address@hidden tooltips
+
+ @dfn{Tooltips} are small windows that display text information at the
+current mouse position. They activate when there is a pause in mouse
+movement. There are two types of tooltip: help tooltips and GUD
+tooltips.
+
+ @dfn{Help tooltips} typically display over text---including the mode
+line---but are also available for other parts of the Emacs frame, such
+as the tool bar and menu items.
+
address@hidden tooltip-mode
+ You can toggle display of help tooltips (Tooltip mode) with the
+command @kbd{M-x tooltip-mode}. When Tooltip mode is disabled, the
+help text is displayed in the echo area instead.
+
+ @dfn{GUD tooltips} show values of variables. They are useful when
+you are debugging a program. @xref{Debugger Operation}.
+
address@hidden tooltip-delay
+ The variables @code{tooltip-delay} specifies how long Emacs should
+wait before displaying a tooltip. For additional customization
+options for displaying tooltips, use @kbd{M-x customize-group
address@hidden tooltip @key{RET}}. @xref{X Resources}, for information on
+customizing the windows that display tooltips.
+
address@hidden Mouse Avoidance
address@hidden Mouse Avoidance
address@hidden avoiding mouse in the way of your typing
address@hidden mouse avoidance
+
address@hidden mouse-avoidance-mode
+Mouse Avoidance mode keeps the mouse pointer away from point, to avoid
+obscuring text you want to edit. Whenever it moves the mouse, it also
+raises the frame. To use Mouse Avoidance mode, customize the variable
address@hidden You can set this to various values to
+move the mouse in several ways:
+
address@hidden @code
address@hidden banish
+Move the mouse to the upper-right corner on any key-press;
address@hidden 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;
address@hidden jump
+If the cursor gets too close to the mouse, displace the mouse
+a random distance & direction;
address@hidden animate
+As @code{jump}, but shows steps along the way for illusion of motion;
address@hidden cat-and-mouse
+The same as @code{animate};
address@hidden proteus
+As @code{animate}, but changes the shape of the mouse pointer too.
address@hidden table
+
address@hidden mouse-avoidance-mode
+You can also use the command @kbd{M-x mouse-avoidance-mode} to enable
+the mode.
+
address@hidden Non-Window Terminals
address@hidden Non-Window Terminals
address@hidden non-window terminals
address@hidden single-frame terminals
+
+ On a text-only terminal, Emacs can display only one Emacs frame at a
+time. However, you can still create multiple Emacs frames, and switch
+between them. Switching frames on these terminals is much like
+switching between different window configurations.
+
+ Use @kbd{C-x 5 2} to create a new frame and switch to it; use @kbd{C-x
+5 o} to cycle through the existing frames; use @kbd{C-x 5 0} to delete
+the current frame.
+
+ Each frame has a number to distinguish it. If your terminal can
+display only one frame at a time, the selected frame's number @var{n}
+appears near the beginning of the mode line, in the form
address@hidden@var{n}}.
+
address@hidden set-frame-name
address@hidden select-frame-by-name
+ @address@hidden is in fact the frame's initial name. You can give
+frames more meaningful names if you wish, and you can select a frame
+by its name. Use the command @kbd{M-x set-frame-name @key{RET}
address@hidden @key{RET}} to specify a new name for the selected frame,
+and use @kbd{M-x select-frame-by-name @key{RET} @var{name} @key{RET}}
+to select a frame according to its name. The name you specify appears
+in the mode line when the frame is selected.
+
address@hidden Text-Only Mouse
address@hidden Using a Mouse in Terminal Emulators
address@hidden mouse support
address@hidden terminal emulators, mouse support
+
+Some terminal emulators support mouse clicks in the terminal window.
+
address@hidden xterm
+In a terminal emulator which is compatible with @code{xterm},
+you can use @kbd{M-x xterm-mouse-mode} to give Emacs control over
+simple use of the mouse---basically, only non-modified single clicks
+are supported. The normal @code{xterm} mouse functionality for such
+clicks is still available by holding down the @kbd{SHIFT} key when you
+press the mouse button. Xterm Mouse mode is a global minor mode
+(@pxref{Minor Modes}). Repeating the command turns the mode off
+again.
+
+In the console on GNU/Linux, you can use @kbd{M-x t-mouse-mode}. You
+need to have the gpm package installed and running on your system in
+order for this to work.
+
address@hidden
+ arch-tag: 7dcf3a31-a43b-45d4-a900-445b10d77e49
address@hidden ignore