summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-02-05 16:50:32 +0000
committerGerd Moellmann <gerd@gnu.org>2000-02-05 16:50:32 +0000
commit59ddecde2a4f18fd12ae9a0ffb0089861f00f8cf (patch)
treed0fb416bcdb6d892d880f6287ca0689c420a5f8b
parent71e1147d35b7832e855650e33cd627162b59a7cb (diff)
downloademacs-59ddecde2a4f18fd12ae9a0ffb0089861f00f8cf.tar.gz
* xterm.c (x_display_and_set_cursor): Set pre-edit area.
(x_display_cursor): Don't set it here. (XTread_socket) [HAVE_X_I18N] <KeyPress, KeyRelease>: Don't dispatch the event.
-rw-r--r--src/ChangeLog8
-rw-r--r--src/xterm.c31
2 files changed, 28 insertions, 11 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 470f5ec9aec..9bc3d6ab634 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
+
+ * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
+ area.
+ (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
+ (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
+ dispatch the event.
+
2000-02-04 Dave Love <fx@gnu.org>
* fileio.c: Remove some unused vars.
diff --git a/src/xterm.c b/src/xterm.c
index bb011dd7136..b632859249c 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -9490,10 +9490,24 @@ XTread_socket (sd, bufp, numchars, expected)
else
abort ();
}
+#ifdef HAVE_X_I18N
+ /* Don't dispatch this event since XtDispatchEvent calls
+ XFilterEvent, and two calls in a row may freeze the
+ client. */
+ break;
+#else
goto OTHER;
+#endif
case KeyRelease:
+#ifdef HAVE_X_I18N
+ /* Don't dispatch this event since XtDispatchEvent calls
+ XFilterEvent, and two calls in a row may freeze the
+ client. */
+ break;
+#else
goto OTHER;
+#endif
/* Here's a possible interpretation of the whole
FocusIn-EnterNotify FocusOut-LeaveNotify mess. If
@@ -10387,6 +10401,12 @@ x_display_and_set_cursor (w, on, hpos, vpos, x, y)
default:
abort ();
}
+
+#ifdef HAVE_X_I18N
+ if (w == XWINDOW (f->selected_window))
+ if (FRAME_XIC (f) && (FRAME_XIC_STYLE (f) & XIMPreeditPosition))
+ xic_set_preeditarea (w, x, y);
+#endif
}
#ifndef XFlush
@@ -10409,17 +10429,6 @@ x_display_cursor (w, on, hpos, vpos, x, y)
{
BLOCK_INPUT;
x_display_and_set_cursor (w, on, hpos, vpos, x, y);
-
-#ifdef HAVE_X_I18N
- {
- struct frame *f = XFRAME (w->frame);
-
- if (w == XWINDOW (f->selected_window))
- if (FRAME_XIC (f) && (FRAME_XIC_STYLE (f) & XIMPreeditPosition))
- xic_set_preeditarea (w, x, y);
- }
-#endif
-
UNBLOCK_INPUT;
}