diff options
| author | Gerd Moellmann | 1999-12-22 10:29:16 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 1999-12-22 10:29:16 +0000 |
| commit | f2be114689f05817e35b38f9d78fbafd2cb5501c (patch) | |
| tree | eafe6bc88e404d27c6a0925843c2d3907d63eb5f /src | |
| parent | 1a8eb6d5b035560aee43cb64fb8a9153ccff76ee (diff) | |
| download | emacs-f2be114689f05817e35b38f9d78fbafd2cb5501c.tar.gz emacs-f2be114689f05817e35b38f9d78fbafd2cb5501c.zip | |
(XTread_socket): At the beginning of the loop, pass the
frame's X window to XFilterEvent instead of None because that's
the X window for which the IC was created. This makes dead
accents work when the pointer is not in Emacs' frame.
(XTread_socket) <KeyPress>: Don't call XFilterEvent here.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/xterm.c | 19 |
2 files changed, 18 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7997957492d..5280ae24663 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 1999-12-22 Gerd Moellmann <gerd@gnu.org> | ||
| 2 | |||
| 3 | * xterm.c (XTread_socket): At the beginning of the loop, pass the | ||
| 4 | frame's X window to XFilterEvent instead of None because that's | ||
| 5 | the X window for which the IC was created. This makes dead | ||
| 6 | accents work when the pointer is not in Emacs' frame. | ||
| 7 | (XTread_socket) <KeyPress>: Don't call XFilterEvent here. | ||
| 8 | |||
| 1 | 1999-12-20 Dave Love <fx@gnu.org> | 9 | 1999-12-20 Dave Love <fx@gnu.org> |
| 2 | 10 | ||
| 3 | * xfns.c (Fx_show_tip): Add missing UNGCPRO. | 11 | * xfns.c (Fx_show_tip): Add missing UNGCPRO. |
diff --git a/src/xterm.c b/src/xterm.c index 9e21928ebcb..a2acc107095 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -8881,11 +8881,16 @@ XTread_socket (sd, bufp, numchars, expected) | |||
| 8881 | 8881 | ||
| 8882 | #ifdef HAVE_X_I18N | 8882 | #ifdef HAVE_X_I18N |
| 8883 | { | 8883 | { |
| 8884 | struct frame *f1 = x_any_window_to_frame (dpyinfo, | 8884 | /* Filter events for the current X input method. |
| 8885 | event.xclient.window); | 8885 | XFilterEvent returns non-zero if the input method has |
| 8886 | /* The necessity of the following line took me | 8886 | consumed the event. We pass the frame's X window to |
| 8887 | a full work-day to decipher from the docs!! */ | 8887 | XFilterEvent because that's the one for which the IC |
| 8888 | if (f1 != 0 && FRAME_XIC (f1) && XFilterEvent (&event, None)) | 8888 | was created. */ |
| 8889 | struct frame *f1 | ||
| 8890 | = x_any_window_to_frame (dpyinfo, event.xclient.window); | ||
| 8891 | if (f1 | ||
| 8892 | && FRAME_XIC (f1) | ||
| 8893 | && XFilterEvent (&event, FRAME_X_WINDOW (f1))) | ||
| 8889 | break; | 8894 | break; |
| 8890 | } | 8895 | } |
| 8891 | #endif | 8896 | #endif |
| @@ -9318,10 +9323,6 @@ XTread_socket (sd, bufp, numchars, expected) | |||
| 9318 | #ifdef HAVE_X_I18N | 9323 | #ifdef HAVE_X_I18N |
| 9319 | if (FRAME_XIC (f)) | 9324 | if (FRAME_XIC (f)) |
| 9320 | { | 9325 | { |
| 9321 | /* The necessity of the following line took me | ||
| 9322 | a full work-day to decipher from the docs!! */ | ||
| 9323 | if (XFilterEvent (&event, None)) | ||
| 9324 | break; | ||
| 9325 | nbytes = XmbLookupString (FRAME_XIC (f), | 9326 | nbytes = XmbLookupString (FRAME_XIC (f), |
| 9326 | &event.xkey, copy_buffer, | 9327 | &event.xkey, copy_buffer, |
| 9327 | 80, &keysym, | 9328 | 80, &keysym, |