# HG changeset patch # User Gerd Moellmann # Date 949769228 0 # Node ID 1d5c785bca99425851685ceb7ec5545771eb56e5 # Parent 3afff8dbcdaca86ecc64850224101a55646fe9f7 * xterm.c (x_display_and_set_cursor): Set pre-edit area. (x_display_cursor): Don't set it here. (XTread_socket) [HAVE_X_I18N] : Don't dispatch the event. diff -r 3afff8dbcdac -r 1d5c785bca99 src/xterm.c --- a/src/xterm.c Fri Feb 04 20:53:21 2000 +0000 +++ b/src/xterm.c Sat Feb 05 16:47:08 2000 +0000 @@ -9490,10 +9490,24 @@ 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 @@ 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 @@ { 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; }