aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann1999-12-22 10:29:16 +0000
committerGerd Moellmann1999-12-22 10:29:16 +0000
commitf2be114689f05817e35b38f9d78fbafd2cb5501c (patch)
treeeafe6bc88e404d27c6a0925843c2d3907d63eb5f /src
parent1a8eb6d5b035560aee43cb64fb8a9153ccff76ee (diff)
downloademacs-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/ChangeLog8
-rw-r--r--src/xterm.c19
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 @@
11999-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
11999-12-20 Dave Love <fx@gnu.org> 91999-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,