Merge from origin/emacs-27

86cbc9d216 Make ignoring modifiers on IME input optional
32b97bb9e0 Ignore modifiers when processing WM_IME_CHAR messages
f641ef1a07 Improve documentation of 'font-spec'

# Conflicts:
#	etc/NEWS
This commit is contained in:
Glenn Morris 2020-11-23 09:41:53 -08:00
commit be17ee78c6
4 changed files with 52 additions and 2 deletions

View file

@ -3754,6 +3754,20 @@ Additional typographic style information for the font, such as
The charset registry and encoding of the font, such as
@samp{iso8859-1}. The value should be a string or a symbol.
@item :dpi
The resolution in dots per inch for which the font is designed. The
value must be a non-negative number.
@item :spacing
The spacing of the font: proportional, dual, mono, or charcell. The
value should be either an integer (0 for proportional, 90 for dual,
100 for mono, 110 for charcell) or a one-letter symbol (one of
@code{P}, @code{D}, @code{M}, or @code{C}).
@item :avgwidth
The average width of the font in 1/10 pixel units. The value should
be a non-negative number.
@item :script
The script that the font must support (a symbol).

View file

@ -48,7 +48,7 @@ skip leading or trailing empty lines of the buffer.
** Tramp
*** The user option 'tramp-completion-reread-directory-timeout' is made obsolete.
*** The user option 'tramp-completion-reread-directory-timeout' is now obsolete.
* New Modes and Packages in Emacs 27.2
@ -62,6 +62,13 @@ skip leading or trailing empty lines of the buffer.
* Changes in Emacs 27.2 on Non-Free Operating Systems
** Emacs now ignores modifier keys when IME input is used.
By default, pressing Ctrl, Shift, and Alt keys while using IME input
will no longer apply the modifiers to the produced characters, as
there are IMEs which use keys with modifiers to input some
characters. Customize the variable 'w32-ignore-modifiers-on-IME-input'
to nil to get back the old behavior.
* Installation Changes in Emacs 27.1

View file

@ -3945,6 +3945,23 @@ VALUE must be a non-negative integer or a floating point number
specifying the font size. It specifies the font size in pixels (if
VALUE is an integer), or in points (if VALUE is a float).
`:dpi'
VALUE must be a non-negative number that specifies the resolution
(dot per inch) for which the font is designed.
`:spacing'
VALUE specifies the spacing of the font: mono, proportional, charcell,
or dual. It can be either a number (0 for proportional, 90 for dual,
100 for mono, 110 for charcell) or a 1-letter symbol: `P', `D', `M',
or `C' (lower-case variants are also accepted).
`:avgwidth'
VALUE must be a non-negative integer specifying the average width of
the font in 1/10 pixel units.
`:name'
VALUE must be a string of XLFD-style or fontconfig-style font name.

View file

@ -4448,7 +4448,10 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
int size, i;
W32Msg wmsg;
HIMC context = get_ime_context_fn (hwnd);
wmsg.dwModifiers = w32_get_key_modifiers (wParam, lParam);
wmsg.dwModifiers =
w32_ignore_modifiers_on_IME_input
? 0
: w32_get_key_modifiers (wParam, lParam);
/* Get buffer size. */
size = get_composition_string_fn (context, GCS_RESULTSTR, NULL, 0);
buffer = alloca (size);
@ -10614,6 +10617,15 @@ tip frame. */);
doc: /* Non-nil means don't display the abort dialog when aborting. */);
w32_disable_abort_dialog = 0;
DEFVAR_BOOL ("w32-ignore-modifiers-on-IME-input",
w32_ignore_modifiers_on_IME_input,
doc: /* Whether to ignore modifier keys when processing input with IME.
Some MS-Windows input methods use modifier keys such as Ctrl or Alt to input
characters, in which case applying the modifiers will change the input.
The default value of this variable is therefore t, to ignore modifier
keys when IME input is received. */);
w32_ignore_modifiers_on_IME_input = true;
#if 0 /* TODO: Port to W32 */
defsubr (&Sx_change_window_property);
defsubr (&Sx_delete_window_property);