diff options
author | Søren Sandmann Pedersen <sandmann@redhat.com> | 2008-02-24 20:03:35 -0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2008-02-24 20:03:35 -0500 |
commit | 1a1a42a3ca1dfaf42f1094936b71c140fc030fcb (patch) | |
tree | dfc1334c8ad93b55e8821d5601cc827e0e965516 /modules | |
parent | e02e4ccafcaf3eb8993152dfcbfbee0240ea2db2 (diff) |
XIM: Fix a hand when switching input context.
Red Hat bug #201284.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/im/ximcp/imDefIc.c | 4 | ||||
-rw-r--r-- | modules/im/ximcp/imDefLkup.c | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/modules/im/ximcp/imDefIc.c b/modules/im/ximcp/imDefIc.c index cb30ac2..c04744b 100644 --- a/modules/im/ximcp/imDefIc.c +++ b/modules/im/ximcp/imDefIc.c @@ -949,6 +949,8 @@ _XimProtoSetFocus( (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); + MARK_FOCUSED(ic); + _XimRegisterFilter(ic); return; } @@ -994,6 +996,8 @@ _XimProtoUnsetFocus( (void)_XimWrite(im, len, (XPointer)buf); _XimFlush(im); + UNMARK_FOCUSED(ic); + _XimUnregisterFilter(ic); return; } diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c index 157b076..66e4add 100644 --- a/modules/im/ximcp/imDefLkup.c +++ b/modules/im/ximcp/imDefLkup.c @@ -216,8 +216,13 @@ _XimRespSyncReply( Xic ic, BITMASK16 mode) { - if (mode & XimSYNCHRONUS) /* SYNC Request */ - MARK_NEED_SYNC_REPLY(ic); + if (mode & XimSYNCHRONUS) /* SYNC Request */ { + if (IS_FOCUSED(ic)) + MARK_NEED_SYNC_REPLY(ic); + else + _XimProcSyncReply(ic->core.im, ic); + } + return True; } |