summaryrefslogtreecommitdiff
path: root/modules/im/ximcp/imLcIc.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/im/ximcp/imLcIc.c')
-rw-r--r--modules/im/ximcp/imLcIc.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/modules/im/ximcp/imLcIc.c b/modules/im/ximcp/imLcIc.c
index 541d2227..740d22fa 100644
--- a/modules/im/ximcp/imLcIc.c
+++ b/modules/im/ximcp/imLcIc.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imLcIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -52,9 +53,13 @@ _XimLocalDestroyIC(xic)
XIC xic;
{
Xic ic = (Xic)xic;
+
if(((Xim)ic->core.im)->private.local.current_ic == (XIC)ic) {
- _XimLocalUnSetFocus(xic);
+ ((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
}
+ if (ic->core.focus_window)
+ _XUnregisterFilter(ic->core.im->core.display,
+ ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
if(ic->private.local.ic_resources) {
Xfree(ic->private.local.ic_resources);
ic->private.local.ic_resources = NULL;
@@ -84,24 +89,29 @@ _XimLocalSetFocus(xic)
return;
}
-Private char *
-_XimLocalMbReset(xic)
+Private void
+_XimLocalReset(xic)
XIC xic;
{
Xic ic = (Xic)xic;
ic->private.local.composed = (DefTree *)NULL;
ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return((char *)NULL);
+}
+
+Private char *
+_XimLocalMbReset(xic)
+ XIC xic;
+{
+ _XimLocalReset(xic);
+ return (char *)NULL;
}
Private wchar_t *
_XimLocalWcReset(xic)
XIC xic;
{
- Xic ic = (Xic)xic;
- ic->private.local.composed = (DefTree *)NULL;
- ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return((wchar_t *)NULL);
+ _XimLocalReset(xic);
+ return (wchar_t *)NULL;
}
Private XICMethodsRec Local_ic_methods = {
@@ -112,8 +122,10 @@ Private XICMethodsRec Local_ic_methods = {
_XimLocalGetICValues, /* get_values */
_XimLocalMbReset, /* mb_reset */
_XimLocalWcReset, /* wc_reset */
+ _XimLocalMbReset, /* utf8_reset */
_XimLocalMbLookupString, /* mb_lookup_string */
_XimLocalWcLookupString, /* wc_lookup_string */
+ _XimLocalUtf8LookupString /* utf8_lookup_string */
};
Public XIC