changeset 27619:1d5c785bca99

* 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.
author Gerd Moellmann <gerd@gnu.org>
date Sat, 05 Feb 2000 16:47:08 +0000
parents 3afff8dbcdac
children ee985b928a88
files src/xterm.c
diffstat 1 files changed, 20 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }