diff options
| author | Eli Zaretskii | 2012-06-23 15:39:23 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2012-06-23 15:39:23 +0300 |
| commit | 0bd8297f9cee150f34cbab14c71825d21d7bf91c (patch) | |
| tree | 16a94bc4ac8fa7ea10b3de78584695a3d364487d /src | |
| parent | 63def6b6d1acb18d90c705687359edd4f4c2f49a (diff) | |
| download | emacs-0bd8297f9cee150f34cbab14c71825d21d7bf91c.tar.gz emacs-0bd8297f9cee150f34cbab14c71825d21d7bf91c.zip | |
Improve and document the language-change event on MS-Windows.
src/keyboard.c (kbd_buffer_get_event): Include the codepage and the
language ID in the event parameters.
src/w32term.c (w32_read_socket): Put the new keyboard codepage into
event.code, not the obscure "character set ID".
doc/lispref/commands.texi (Misc Events): Document the language-change event.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/keyboard.c | 8 | ||||
| -rw-r--r-- | src/w32term.c | 6 |
3 files changed, 16 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2266ccc49ef..a01a93f86e9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2012-06-23 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * keyboard.c (kbd_buffer_get_event): Include the codepage and the | ||
| 4 | language ID in the event parameters. | ||
| 5 | |||
| 6 | * w32term.c (w32_read_socket): Put the new keyboard codepage into | ||
| 7 | event.code, not the obscure "character set ID". | ||
| 8 | |||
| 1 | 2012-06-23 Chong Yidong <cyd@gnu.org> | 9 | 2012-06-23 Chong Yidong <cyd@gnu.org> |
| 2 | 10 | ||
| 3 | * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select. | 11 | * xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select. |
diff --git a/src/keyboard.c b/src/keyboard.c index 9b80c5c7019..0e8d22c2b1c 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3982,9 +3982,11 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3982 | #if defined (WINDOWSNT) | 3982 | #if defined (WINDOWSNT) |
| 3983 | else if (event->kind == LANGUAGE_CHANGE_EVENT) | 3983 | else if (event->kind == LANGUAGE_CHANGE_EVENT) |
| 3984 | { | 3984 | { |
| 3985 | /* Make an event (language-change (FRAME CHARSET LCID)). */ | 3985 | /* Make an event (language-change (FRAME CODEPAGE LANGUAGE-ID)). */ |
| 3986 | obj = Fcons (event->frame_or_window, Qnil); | 3986 | obj = Fcons (Qlanguage_change, |
| 3987 | obj = Fcons (Qlanguage_change, Fcons (obj, Qnil)); | 3987 | list3 (event->frame_or_window, |
| 3988 | make_number (event->code), | ||
| 3989 | make_number (event->modifiers))); | ||
| 3988 | kbd_fetch_ptr = event + 1; | 3990 | kbd_fetch_ptr = event + 1; |
| 3989 | } | 3991 | } |
| 3990 | #endif | 3992 | #endif |
diff --git a/src/w32term.c b/src/w32term.c index 6a4b3ca4afb..4f4fa220a7b 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -4234,8 +4234,8 @@ w32_read_socket (struct terminal *terminal, int expected, | |||
| 4234 | /* Generate a language change event. */ | 4234 | /* Generate a language change event. */ |
| 4235 | f = x_window_to_frame (dpyinfo, msg.msg.hwnd); | 4235 | f = x_window_to_frame (dpyinfo, msg.msg.hwnd); |
| 4236 | 4236 | ||
| 4237 | /* lParam contains the input lang ID. Use it to update our | 4237 | /* lParam contains the input language ID in its low 16 bits. |
| 4238 | record of the keyboard codepage. */ | 4238 | Use it to update our record of the keyboard codepage. */ |
| 4239 | keyboard_codepage = codepage_for_locale ((LCID)(msg.msg.lParam | 4239 | keyboard_codepage = codepage_for_locale ((LCID)(msg.msg.lParam |
| 4240 | & 0xffff)); | 4240 | & 0xffff)); |
| 4241 | 4241 | ||
| @@ -4243,7 +4243,7 @@ w32_read_socket (struct terminal *terminal, int expected, | |||
| 4243 | { | 4243 | { |
| 4244 | inev.kind = LANGUAGE_CHANGE_EVENT; | 4244 | inev.kind = LANGUAGE_CHANGE_EVENT; |
| 4245 | XSETFRAME (inev.frame_or_window, f); | 4245 | XSETFRAME (inev.frame_or_window, f); |
| 4246 | inev.code = msg.msg.wParam; | 4246 | inev.code = keyboard_codepage; |
| 4247 | inev.modifiers = msg.msg.lParam & 0xffff; | 4247 | inev.modifiers = msg.msg.lParam & 0xffff; |
| 4248 | } | 4248 | } |
| 4249 | break; | 4249 | break; |