summaryrefslogtreecommitdiff
path: root/src/w32term.c
diff options
context:
space:
mode:
authorJason Rumney <jasonr@gnu.org>2007-11-17 03:00:47 +0000
committerJason Rumney <jasonr@gnu.org>2007-11-17 03:00:47 +0000
commita60b033380f657f2af669cc08d12f7ace82fdd67 (patch)
tree7ea3bdd956ede4e14aeac3f3622a53e76e01f846 /src/w32term.c
parent499180d57c44fb564a7049342f90015490117f4c (diff)
downloademacs-a60b033380f657f2af669cc08d12f7ace82fdd67.tar.gz
emacs-a60b033380f657f2af669cc08d12f7ace82fdd67.tar.bz2
emacs-a60b033380f657f2af669cc08d12f7ace82fdd67.zip
(w32_read_socket) [WM_UNICHAR]: Handle as MULTIBYTE_CHAR_KEYSTROKE_EVENT.
Diffstat (limited to 'src/w32term.c')
-rw-r--r--src/w32term.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/w32term.c b/src/w32term.c
index 93e81b7bdb4..857887397fe 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -4768,6 +4768,7 @@ w32_read_socket (sd, expected, hold_quit)
}
break;
+ case WM_UNICHAR:
case WM_SYSCHAR:
case WM_CHAR:
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
@@ -4784,8 +4785,16 @@ w32_read_socket (sd, expected, hold_quit)
if (temp_index == sizeof temp_buffer / sizeof (short))
temp_index = 0;
temp_buffer[temp_index++] = msg.msg.wParam;
- inev.kind = ASCII_KEYSTROKE_EVENT;
- inev.code = msg.msg.wParam;
+ if (msg.msg.message == WM_UNICHAR)
+ {
+ inev.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+ inev.code = msg.msg.wParam;
+ }
+ else
+ {
+ inev.kind = ASCII_KEYSTROKE_EVENT;
+ inev.code = msg.msg.wParam;
+ }
inev.modifiers = msg.dwModifiers;
XSETFRAME (inev.frame_or_window, f);
inev.timestamp = msg.msg.time;