diff options
author | Choe Hwanjin <choe.hwanjin@gmail.com> | 2011-10-13 07:58:02 +0900 |
---|---|---|
committer | Ulrich Sibiller <uli42@gmx.de> | 2016-10-19 21:40:25 +0200 |
commit | 1871ff031211a842601821735cae7a6d7600ca05 (patch) | |
tree | f34652d5295ce2833369486f4545312566620636 /nx-X11/lib/X11/imDefLkup.c | |
parent | 7efa7da59e27ad72e7f1b554f85804b82977cbef (diff) | |
download | nx-libs-1871ff031211a842601821735cae7a6d7600ca05.tar.gz nx-libs-1871ff031211a842601821735cae7a6d7600ca05.tar.bz2 nx-libs-1871ff031211a842601821735cae7a6d7600ca05.zip |
XIM: Make Xim handle NEED_SYNC_REPLY flag
NEED_SYNC_REPLY flag should be in Xim not in Xic.
Because the focused Xic can be changed before sending sync reply.
After focused Xic changed, the new Xic doesn't have NEED_SYNC_REPLY
flag enabled, so libX11 doesn't send XIM_SYNC_REPLY packet.
This patch adds sync reply flag to Xim and removes sync reply
from Xic.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=7869
Signed-off-by: Choe Hwanjin <choe.hwanjin@gmail.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Backported-to-NX-by: Ulrich Sibiller <uli42@gmx.de>
Diffstat (limited to 'nx-X11/lib/X11/imDefLkup.c')
-rw-r--r-- | nx-X11/lib/X11/imDefLkup.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/nx-X11/lib/X11/imDefLkup.c b/nx-X11/lib/X11/imDefLkup.c index d1c3a6567..e2b1e05bc 100644 --- a/nx-X11/lib/X11/imDefLkup.c +++ b/nx-X11/lib/X11/imDefLkup.c @@ -213,12 +213,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; } @@ -356,7 +352,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; } @@ -706,7 +702,7 @@ _XimCommitRecv( (void)_XimRespSyncReply(ic, flag); - MARK_FABLICATED(ic); + MARK_FABRICATED(im); ev.type = KeyPress; ev.send_event = False; |