set-temporary-overlay-map and overriding-terminal-local-map.
* doc/lispref/modes.texi (Mode Line Data, Properties in Mode): Advertise
`keymap' rather than `local-map'.
+2013-06-19 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * modes.texi (Mode Line Data, Properties in Mode): Advertise `keymap'
+ rather than `local-map'.
+
+ * keymaps.texi (Active Keymaps): Fix documentation of
+ set-temporary-overlay-map and overriding-terminal-local-map.
+
2013-06-19 Glenn Morris <rgm@gnu.org>
* Makefile.in (dist): Edit more configure variables.
an empty overlay a non-@code{nil} @code{evaporate} property, that deletes
it immediately.
-@item local-map
-@cindex keymap of character (and overlays)
-@kindex local-map @r{(overlay property)}
-If this property is non-@code{nil}, it specifies a keymap for a portion
-of the text. The property's value replaces the buffer's local map, when
-the character after point is within the overlay. @xref{Active Keymaps}.
-
@item keymap
+@cindex keymap of character (and overlays)
@kindex keymap @r{(overlay property)}
-The @code{keymap} property is similar to @code{local-map} but overrides the
-buffer's local map (and the map specified by the @code{local-map}
-property) rather than replacing it.
+If this property is non-@code{nil}, it specifies a keymap for a portion of the
+text. This keymap is used when the character after point is within the
+overlay, and takes precedence over most other keymaps. @xref{Active Keymaps}.
+
+@item local-map
+@kindex local-map @r{(overlay property)}
+The @code{local-map} property is similar to @code{keymap} but replaces the
+buffer's local map rather than augmenting existing keymaps. This also means it
+has lower precedence than minor mode keymaps.
@end table
-The @code{local-map} and @code{keymap} properties do not affect a
+The @code{keymap} and @code{local-map} properties do not affect a
string displayed by the @code{before-string}, @code{after-string}, or
@code{display} properties. This is only relevant for mouse clicks and
other mouse events that fall on the string, since point is never on
the string. To bind special mouse events for the string, assign it a
-@code{local-map} or @code{keymap} text property. @xref{Special
+@code{keymap} or @code{local-map} text property. @xref{Special
Properties}.
@node Finding Overlays
The highest precedence normal keymap comes from the @code{keymap}
text or overlay property. If that is non-@code{nil}, it is the first
-keymap to be processed, in normal circumstances. Next comes
-any keymap added by the function @code{set-temporary-overlay-map}.
-@xref{Controlling Active Maps}.
+keymap to be processed, in normal circumstances.
However, there are also special ways for programs to substitute
other keymaps for some of those. The variable
@code{overriding-local-map}, if non-@code{nil}, specifies a keymap
that replaces all the usual active keymaps except the global keymap.
-Another way to do this is with @code{overriding-terminal-local-map};
-it operates on a per-terminal basis. These variables are documented
-below.
+
+The very highest precedence keymap comes from
+@code{overriding-terminal-local-map}; it operates on a per-terminal basis and
+is normally used for modal/transient keybindings.
@cindex major mode keymap
Since every buffer that uses the same major mode normally uses the
characters which have no @code{face} properties are displayed, by
default, in the face @code{mode-line} or @code{mode-line-inactive}
(@pxref{Standard Faces,,, emacs, The GNU Emacs Manual}). The
-@code{help-echo} and @code{local-map} properties in @var{string} have
+@code{help-echo} and @code{keymap} properties in @var{string} have
special meanings. @xref{Properties in Mode}.
@item @var{symbol}
Certain text properties are meaningful in the
mode line. The @code{face} property affects the appearance of text; the
@code{help-echo} property associates help strings with the text, and
-@code{local-map} can make the text mouse-sensitive.
+@code{keymap} can make the text mouse-sensitive.
There are four ways to specify text properties for text in the mode
line:
property.
@end enumerate
- You can use the @code{local-map} property to specify a keymap. This
+ You can use the @code{keymap} property to specify a keymap. This
keymap only takes real effect for mouse clicks; binding character keys
and function keys to it has no effect, since it is impossible to move
point into the mode line.