* doc/emacs/android.texi (Android Fonts): Update documentation.
* doc/lispref/frames.texi (Accessing Selections, X Selections):
Fix typos.
* src/sfntfont-android.c (system_font_directories)
(init_sfntfont_android): Add `/product/fonts'.
Emacs supports two font backends under Android: they are respectively
named @code{sfnt-android} and @code{android}.
-Upon startup, Emacs enumerates all the TrueType format fonts in the
-directory @file{/system/fonts}, and the @file{fonts} directory
-(@dfn{user fonts directory}) inside the Emacs home directory. Emacs
-assumes there will always be a font named ``Droid Sans Mono'', and
-then defaults to using this font. These fonts are then displayed by
-the @code{sfnt-android} font driver.
-
-When running on Android, Emacs currently lacks support for OpenType
+ Upon startup, Emacs enumerates all the TrueType format fonts in the
+directories @file{/system/fonts} and @file{/product/fonts}, and the
+@file{fonts} directory (@dfn{user fonts directory}) inside the Emacs
+home directory. Emacs assumes there will always be a font named
+``Droid Sans Mono'', and then defaults to using this font. These
+fonts are then displayed by the @code{sfnt-android} font driver.
+
+ When running on Android, Emacs currently lacks support for OpenType
fonts. This means that only a subset of the fonts installed on the
system are currently available to Emacs. If you are interested in
lifting this limitation, please contact @email{emacs-devel@@gnu.org}.
-If the @code{sfnt-android} font driver fails to find any fonts at all,
-Emacs falls back to the @code{android} font driver. This is a very
-lousy font driver, because of limitations and inaccuracies in the font
-metrics provided by the Android platform. In that case, Emacs uses
-the ``Monospace'' typeface configured on your system; this should
+ If the @code{sfnt-android} font driver fails to find any fonts at
+all, Emacs falls back to the @code{android} font driver. This is a
+very lousy font driver, because of limitations and inaccuracies in the
+font metrics provided by the Android platform. In that case, Emacs
+uses the ``Monospace'' typeface configured on your system; this should
always be Droid Sans Mono.
@cindex TrueType GX fonts, android
and ``multiple master fonts'') provide multiple different styles
(``Bold'', ``Italic'', etc) using a single font file.
-When a user-installed distortable font is found, each font that a
+ When a user-installed distortable font is found, each font that a
previously discovered font provided will no longer be used. In
addition, any previously specified distortable fonts with the same
family name are also removed. When a conventional font is found, any
previous conventional font with the same style and family will be
-removed; distortable fonts with the same family will no longer be
-used to provide that style.
+removed; distortable fonts with the same family will no longer be used
+to provide that style.
@node Android Troubleshooting
@section What to do when something goes wrong on Android
@section Accessing Selections
@code{gui-get-selection} is able to retrieve multiple different
-kinds of selection data. However, the exact data types which Emacs
-understands is not precisely specified and differs depending on the
-window system on which Emacs is running.
+kinds of selection data from any number of selections. However, the
+data types and selections that Emacs understands is not precisely
+specified and differs depending on the window system on which Emacs is
+running.
At the same time, @code{gui-set-selection} hides a great deal of
complexity behind its back, at least on some systems: its @var{data}
argument need not be a string, but is actually given verbatim to
system specific code.
- Emacs implements selections most completely on the X Window System.
-This is both an artifact of history (X was the first window system
-supported by Emacs) and one of technical reasons: instead of using
-selections only to transfer text and multimedia content between
-clients, X uses selections as a general inter-client communication
-system, leading to a great proliferation of selection data types.
+ Emacs's implementation of selections is most complete on the X
+Window System. This is both an artifact of history (X was the first
+window system supported by Emacs) and one of technical reasons:
+instead of using selections only to transfer text and multimedia
+content between clients, X uses selections as a general inter-client
+communication system, leading to a great proliferation of selection
+data types.
Even more confusingly, X also supports another inter-client
communication mechanism: the Inter-Client Exchange. However, ICE is
fixed number of selections. Selections are instead identified by X
``atoms'', which are unique 29-bit identifiers issued by the X server
for a corresponding name. In Emacs, you can simply write a symbol
-with name of the atom, and Emacs will transparently request these
+with the name of the atom, and Emacs will transparently request these
identifiers where necessary.
- When a program ``sets'' a selection under X, it actually takes
-ownership of the selection---the X server will then deliver selection
-requests to the program, which is obliged to respond to the requesting
-client with the selection data.
+ When a program ``sets'' a selection under X, it actually makes
+itself the ``owner'' of the selection---the X server will then deliver
+selection requests to the program, which is obliged to respond to the
+requesting client with the selection data.
Similarly, a program does not ``get'' selection data from the X
server. Instead, its selection requests are sent to the client with
-the window which last took ownership over the selection.
+the window which last took ownership over the selection, which then
+replies with the requested data.
Each selection request contains three parameters:
static char *system_font_directories[] =
{
(char *) "/system/fonts",
+ (char *) "/product/fonts",
/* This should be filled in by init_sfntfont_android. */
(char[PATH_MAX]) { },
};
/* Set up the user fonts directory. This directory is ``fonts'' in
the Emacs files directory. */
- snprintf (system_font_directories[1], PATH_MAX, "%s/fonts",
+ snprintf (system_font_directories[2], PATH_MAX, "%s/fonts",
android_get_home_directory ());
}