diff -u -r libX11-1.1.4.orig/modules/im/ximcp/imDefIc.c libX11-1.1.4/modules/im/ximcp/imDefIc.c --- libX11-1.1.4.orig/modules/im/ximcp/imDefIc.c 2008-10-30 16:48:31.000000000 +0100 +++ libX11-1.1.4/modules/im/ximcp/imDefIc.c 2008-10-30 16:41:13.000000000 +0100 @@ -974,8 +974,6 @@ (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); - MARK_FOCUSED(ic); - _XimRegisterFilter(ic); return; } @@ -1023,8 +1021,6 @@ (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); - UNMARK_FOCUSED(ic); - _XimUnregisterFilter(ic); return; } diff -u -r libX11-1.1.4.orig/modules/im/ximcp/imDefLkup.c libX11-1.1.4/modules/im/ximcp/imDefLkup.c --- libX11-1.1.4.orig/modules/im/ximcp/imDefLkup.c 2008-10-30 16:48:31.000000000 +0100 +++ libX11-1.1.4/modules/im/ximcp/imDefLkup.c 2008-10-30 16:46:18.000000000 +0100 @@ -216,13 +216,8 @@ Xic ic, BITMASK16 mode) { - if (mode & XimSYNCHRONUS) /* SYNC Request */ { - if (IS_FOCUSED(ic)) - MARK_NEED_SYNC_REPLY(ic); - else - _XimProcSyncReply(ic->core.im, ic); - } - + if (mode & XimSYNCHRONUS) /* SYNC Request */ + MARK_NEED_SYNC_REPLY(ic->core.im); return True; } @@ -359,7 +354,7 @@ 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 +707,7 @@ if (ic->private.proto.registed_filter_event & (KEYPRESS_MASK | KEYRELEASE_MASK)) - MARK_FABLICATED(ic); + MARK_FABRICATED(im); ev.type = KeyPress; ev.send_event = False; diff -u -r libX11-1.1.4.orig/modules/im/ximcp/imExten.c libX11-1.1.4/modules/im/ximcp/imExten.c --- libX11-1.1.4.orig/modules/im/ximcp/imExten.c 2008-03-06 21:45:06.000000000 +0100 +++ libX11-1.1.4/modules/im/ximcp/imExten.c 2008-10-30 16:41:19.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 -u -r libX11-1.1.4.orig/src/xlibi18n/XimintP.h libX11-1.1.4/src/xlibi18n/XimintP.h --- libX11-1.1.4.orig/src/xlibi18n/XimintP.h 2008-03-06 21:45:06.000000000 +0100 +++ libX11-1.1.4/src/xlibi18n/XimintP.h 2008-10-30 16:41:19.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 */