diff options
| author | Eli Zaretskii | 2020-11-21 10:14:55 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2020-11-21 10:14:55 +0200 |
| commit | 86cbc9d216c724e6be5db27fb33df2ca0c7d9804 (patch) | |
| tree | eab69db320484877da47356a6bf01ae9f825e3f1 /src | |
| parent | 32b97bb9e0d91522a76c984b594be35343bf9fe3 (diff) | |
| download | emacs-86cbc9d216c724e6be5db27fb33df2ca0c7d9804.tar.gz emacs-86cbc9d216c724e6be5db27fb33df2ca0c7d9804.zip | |
Make ignoring modifiers on IME input optional
By default, ignore modifier keys on IME input, but add
a variable to get back old behavior.
* src/w32fns.c (syms_of_w32fns): New variable
w32-ignore-modifiers-on-IME-input.
(w32_wnd_proc): Use it to ignore modifier keys when IME input is
used. (Bug#44641)
* etc/NEWS: Announce the change and the new variable.
Diffstat (limited to 'src')
| -rw-r--r-- | src/w32fns.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/w32fns.c b/src/w32fns.c index 96cf34430d4..fd13a958651 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -4576,7 +4576,10 @@ w32_wnd_proc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) | |||
| 4576 | int size, i; | 4576 | int size, i; |
| 4577 | W32Msg wmsg; | 4577 | W32Msg wmsg; |
| 4578 | HIMC context = get_ime_context_fn (hwnd); | 4578 | HIMC context = get_ime_context_fn (hwnd); |
| 4579 | wmsg.dwModifiers = 0; | 4579 | wmsg.dwModifiers = |
| 4580 | w32_ignore_modifiers_on_IME_input | ||
| 4581 | ? 0 | ||
| 4582 | : w32_get_key_modifiers (wParam, lParam); | ||
| 4580 | /* Get buffer size. */ | 4583 | /* Get buffer size. */ |
| 4581 | size = get_composition_string_fn (context, GCS_RESULTSTR, NULL, 0); | 4584 | size = get_composition_string_fn (context, GCS_RESULTSTR, NULL, 0); |
| 4582 | buffer = alloca (size); | 4585 | buffer = alloca (size); |
| @@ -10697,6 +10700,15 @@ tip frame. */); | |||
| 10697 | doc: /* Non-nil means don't display the abort dialog when aborting. */); | 10700 | doc: /* Non-nil means don't display the abort dialog when aborting. */); |
| 10698 | w32_disable_abort_dialog = 0; | 10701 | w32_disable_abort_dialog = 0; |
| 10699 | 10702 | ||
| 10703 | DEFVAR_BOOL ("w32-ignore-modifiers-on-IME-input", | ||
| 10704 | w32_ignore_modifiers_on_IME_input, | ||
| 10705 | doc: /* Whether to ignore modifier keys when processing input with IME. | ||
| 10706 | Some MS-Windows input methods use modifier keys such as Ctrl or Alt to input | ||
| 10707 | characters, in which case applying the modifiers will change the input. | ||
| 10708 | The default value of this variable is therefore t, to ignore modifier | ||
| 10709 | keys when IME input is received. */); | ||
| 10710 | w32_ignore_modifiers_on_IME_input = true; | ||
| 10711 | |||
| 10700 | #if 0 /* TODO: Port to W32 */ | 10712 | #if 0 /* TODO: Port to W32 */ |
| 10701 | defsubr (&Sx_change_window_property); | 10713 | defsubr (&Sx_change_window_property); |
| 10702 | defsubr (&Sx_delete_window_property); | 10714 | defsubr (&Sx_delete_window_property); |