File scim_swallow.diff of Package xorg-x11-libX11

diff -r -u libX11-1.2.orig/modules/im/ximcp/imDefFlt.c libX11-1.2/modules/im/ximcp/imDefFlt.c
--- libX11-1.2.orig/modules/im/ximcp/imDefFlt.c	2009-02-17 16:09:41.000000000 +0100
+++ libX11-1.2/modules/im/ximcp/imDefFlt.c	2009-03-03 17:38:16.000000000 +0100
@@ -131,9 +131,9 @@
 {
     Xim          im = (Xim)ic->core.im;
 
-    if (IS_NEED_SYNC_REPLY(ic)) {
+    if (IS_NEED_SYNC_REPLY(im)) {
 	(void)_XimProcSyncReply(im, ic);
-	UNMARK_NEED_SYNC_REPLY(ic);
+	UNMARK_NEED_SYNC_REPLY(im);
     }
     return;
 }
@@ -143,13 +143,11 @@
     Xic		 ic,
     XKeyEvent	*ev)
 {
-#ifdef XIM_CONNECTABLE
     Xim		im = (Xim)ic->core.im;
-#endif
 
-    if (IS_FABLICATED(ic)) {
+    if (IS_FABRICATED(im)) {
 	_XimPendingFilter(ic);
-	UNMARK_FABLICATED(ic);
+	UNMARK_FABRICATED(im);
 	return NOTFILTERD;
     }
 
@@ -206,13 +204,11 @@
     Xic		 ic,
     XKeyEvent	*ev)
 {
-#ifdef XIM_CONNECTABLE
     Xim		im = (Xim)ic->core.im;
-#endif
 
-    if (IS_FABLICATED(ic)) {
+    if (IS_FABRICATED(im)) {
 	_XimPendingFilter(ic);
-	UNMARK_FABLICATED(ic);
+	UNMARK_FABRICATED(im);
 	return NOTFILTERD;
     }
 
diff -r -u libX11-1.2.orig/modules/im/ximcp/imDefIc.c libX11-1.2/modules/im/ximcp/imDefIc.c
--- libX11-1.2.orig/modules/im/ximcp/imDefIc.c	2009-02-17 16:09:41.000000000 +0100
+++ libX11-1.2/modules/im/ximcp/imDefIc.c	2009-03-03 15:32:40.000000000 +0100
@@ -949,8 +949,6 @@
     (void)_XimWrite(im, len, (XPointer)buf);
     _XimFlush(im);
 
-    MARK_FOCUSED(ic);
-
     _XimRegisterFilter(ic);
     return;
 }
@@ -996,8 +994,6 @@
     (void)_XimWrite(im, len, (XPointer)buf);
     _XimFlush(im);
 
-    UNMARK_FOCUSED(ic);
-
     _XimUnregisterFilter(ic);
     return;
 }
diff -r -u libX11-1.2.orig/modules/im/ximcp/imDefLkup.c libX11-1.2/modules/im/ximcp/imDefLkup.c
diff -r -u libX11-1.2.orig/modules/im/ximcp/imExten.c libX11-1.2/modules/im/ximcp/imExten.c
--- libX11-1.2.orig/modules/im/ximcp/imExten.c	2009-02-17 16:09:41.000000000 +0100
+++ libX11-1.2/modules/im/ximcp/imExten.c	2009-03-03 15:32:40.000000000 +0100
@@ -162,7 +162,7 @@
     XPutBackEvent(im->core.display, &ev);
 
     _XimRespSyncReply(ic, buf_s[0]);
-    MARK_FABLICATED(ic);
+    MARK_FABRICATED(im);
 
     return True;
 }
diff -r -u libX11-1.2.orig/src/xlibi18n/XimintP.h libX11-1.2/src/xlibi18n/XimintP.h
--- libX11-1.2.orig/src/xlibi18n/XimintP.h	2009-02-17 16:09:41.000000000 +0100
+++ libX11-1.2/src/xlibi18n/XimintP.h	2009-03-03 15:32:40.000000000 +0100
@@ -144,6 +144,8 @@
 #define DELAYBINDABLE		(1L << 3)
 #define RECONNECTABLE		(1L << 4)
 #endif /* XIM_CONNECTABLE */
+#define FABRICATED		(1L << 5)
+#define	NEED_SYNC_REPLY		(1L << 6)
 
 /*
  * macro for the flag of XIMPrivateRec
@@ -182,6 +184,20 @@
     (((Xim)im)->private.proto.flag &= ~(DELAYBINDABLE|RECONNECTABLE))
 #endif /* XIM_CONNECTABLE */
 
+#define IS_FABRICATED(im) \
+		(((Xim)im)->private.proto.flag & FABRICATED)
+#define MARK_FABRICATED(im) \
+		(((Xim)im)->private.proto.flag |= FABRICATED)
+#define UNMARK_FABRICATED(im) \
+		(((Xim)im)->private.proto.flag &= ~FABRICATED)
+
+#define	IS_NEED_SYNC_REPLY(im) \
+		(((Xim)im)->private.proto.flag & NEED_SYNC_REPLY)
+#define	MARK_NEED_SYNC_REPLY(im) \
+		(((Xim)im)->private.proto.flag |= NEED_SYNC_REPLY)
+#define	UNMARK_NEED_SYNC_REPLY(im) \
+		(((Xim)im)->private.proto.flag &= ~NEED_SYNC_REPLY)
+
 /*
  * bit mask for the register_filter_event of XIMPrivateRec/XICPrivateRec
  */
@@ -242,9 +258,6 @@
  * bit mask for the flag of XICPrivateRec
  */
 #define IC_CONNECTED		(1L)
-#define FABLICATED		(1L << 1)
-#define	NEED_SYNC_REPLY		(1L << 2)
-#define FOCUSED			(1L << 3)
 
 /*
  * macro for the flag of XICPrivateRec
@@ -256,27 +269,6 @@
 #define	UNMARK_IC_CONNECTED(ic) \
 		(((Xic)ic)->private.proto.flag &= ~IC_CONNECTED)
 
-#define IS_FABLICATED(ic) \
-		(((Xic)ic)->private.proto.flag & FABLICATED)
-#define MARK_FABLICATED(ic) \
-		(((Xic)ic)->private.proto.flag |= FABLICATED)
-#define UNMARK_FABLICATED(ic) \
-		(((Xic)ic)->private.proto.flag &= ~FABLICATED)
-
-#define	IS_NEED_SYNC_REPLY(ic) \
-		(((Xic)ic)->private.proto.flag & NEED_SYNC_REPLY)
-#define	MARK_NEED_SYNC_REPLY(ic) \
-		(((Xic)ic)->private.proto.flag |= NEED_SYNC_REPLY)
-#define	UNMARK_NEED_SYNC_REPLY(ic) \
-		(((Xic)ic)->private.proto.flag &= ~NEED_SYNC_REPLY)
-
-#define IS_FOCUSED(ic) \
-		(((Xic)ic)->private.proto.flag & FOCUSED)
-#define MARK_FOCUSED(ic) \
-		(((Xic)ic)->private.proto.flag |= FOCUSED)
-#define UNMARK_FOCUSED(ic) \
-		(((Xic)ic)->private.proto.flag &= ~FOCUSED)
-
 /*
  * macro for the filter_event_mask of XICPrivateRec
  */
--- libX11-1.2/modules/im/ximcp/imDefLkup.c.orig	2009-03-03 18:11:06.000000000 +0100
+++ libX11-1.2/modules/im/ximcp/imDefLkup.c	2009-03-03 18:14:59.000000000 +0100
@@ -216,12 +216,8 @@ _XimRespSyncReply(
     Xic		 ic,
     BITMASK16	 mode)
 {
-    if (mode & XimSYNCHRONUS) /* SYNC Request */ {
-	if (IS_FOCUSED(ic))
-	    MARK_NEED_SYNC_REPLY(ic);
-	else
-	    _XimProcSyncReply((Xim)ic->core.im, ic);
-    }
+    if (mode & XimSYNCHRONUS) /* SYNC Request */
+	MARK_NEED_SYNC_REPLY(ic->core.im);
 
     return True;
 }
@@ -359,7 +355,7 @@ _XimProcEvent(
     ev->xany.serial |= serial << 16;
     ev->xany.send_event = False;
     ev->xany.display = d;
-    MARK_FABLICATED(ic);
+    MARK_FABRICATED(ic->core.im);
     return;
 }
 
@@ -712,7 +708,7 @@ _XimCommitRecv(
 
     if (ic->private.proto.registed_filter_event
 	 & (KEYPRESS_MASK | KEYRELEASE_MASK))
-	MARK_FABLICATED(ic);
+	MARK_FABRICATED(im);
 
     ev.type = KeyPress;
     ev.send_event = False;
openSUSE Build Service is sponsored by