aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2012-06-23 15:39:23 +0300
committerEli Zaretskii2012-06-23 15:39:23 +0300
commit0bd8297f9cee150f34cbab14c71825d21d7bf91c (patch)
tree16a94bc4ac8fa7ea10b3de78584695a3d364487d /src
parent63def6b6d1acb18d90c705687359edd4f4c2f49a (diff)
downloademacs-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/ChangeLog8
-rw-r--r--src/keyboard.c8
-rw-r--r--src/w32term.c6
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 @@
12012-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
12012-06-23 Chong Yidong <cyd@gnu.org> 92012-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;