Mercurial > emacs
changeset 26968:3039d2412c9e
(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.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 22 Dec 1999 10:28:21 +0000 |
parents | 746b8b172e55 |
children | 3d15c1981f27 |
files | src/xterm.c |
diffstat | 1 files changed, 10 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Wed Dec 22 09:53:20 1999 +0000 +++ b/src/xterm.c Wed Dec 22 10:28:21 1999 +0000 @@ -8881,11 +8881,16 @@ #ifdef HAVE_X_I18N { - struct frame *f1 = x_any_window_to_frame (dpyinfo, - event.xclient.window); - /* The necessity of the following line took me - a full work-day to decipher from the docs!! */ - if (f1 != 0 && FRAME_XIC (f1) && XFilterEvent (&event, None)) + /* Filter events for the current X input method. + XFilterEvent returns non-zero if the input method has + consumed the event. We pass the frame's X window to + XFilterEvent because that's the one for which the IC + was created. */ + struct frame *f1 + = x_any_window_to_frame (dpyinfo, event.xclient.window); + if (f1 + && FRAME_XIC (f1) + && XFilterEvent (&event, FRAME_X_WINDOW (f1))) break; } #endif @@ -9318,10 +9323,6 @@ #ifdef HAVE_X_I18N if (FRAME_XIC (f)) { - /* The necessity of the following line took me - a full work-day to decipher from the docs!! */ - if (XFilterEvent (&event, None)) - break; nbytes = XmbLookupString (FRAME_XIC (f), &event.xkey, copy_buffer, 80, &keysym,