From 6e48443af5473d6bd3c5da3ccbe35b326751478d Mon Sep 17 00:00:00 2001 From: glewis Date: Fri, 18 Oct 2002 21:45:45 +0000 Subject: . More XIM fixes for Japanese users (and presumably others with similar character sets). . Bump PORTREVISION. Submitted by: daichi --- java/jdk15/files/patch-awt_InputMethod.c | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 java/jdk15/files/patch-awt_InputMethod.c (limited to 'java/jdk15/files') diff --git a/java/jdk15/files/patch-awt_InputMethod.c b/java/jdk15/files/patch-awt_InputMethod.c new file mode 100644 index 0000000..db52b6d --- /dev/null +++ b/java/jdk15/files/patch-awt_InputMethod.c @@ -0,0 +1,63 @@ +$FreeBSD$ + +diff -u -r1.5 awt_InputMethod.c +--- ../src/solaris/native/sun/awt/awt_InputMethod.c 10 Sep 2001 05:31:35 -0000 1.5 ++++ ../src/solaris/native/sun/awt/awt_InputMethod.c 18 Oct 2002 02:58:26 -0000 +@@ -1320,17 +1320,56 @@ + X11InputMethodData *pX11IMData = + (X11InputMethodData *) (unsigned long) data; + char *xText; ++ char *ret; + jstring jText; + ++ XIMPreeditState preeditState = XIMPreeditUnKnown; ++ XVaNestedList preeditAttr; ++ int bGetState = FALSE; ++ + AWT_LOCK(); + +- if (pX11IMData->current_ic) ++ if (pX11IMData->current_ic) { ++ preeditAttr = XVaCreateNestedList(0, XNPreeditState, &preeditState, ++ NULL); ++ if (!XGetICValues(pX11IMData->current_ic, XNPreeditAttributes, ++ preeditAttr, NULL)) { ++ bGetState = TRUE; ++ } ++ XFree(preeditAttr); ++ + xText = XmbResetIC(pX11IMData->current_ic); ++ ++ if (bGetState) { ++ preeditAttr = XVaCreateNestedList(0, XNPreeditState, ++ preeditState, 0); ++ XSetICValues(pX11IMData->current_ic, ++ XNPreeditAttributes, preeditAttr, NULL); ++ XFree(preeditAttr); ++ } ++ } + else { + /* + * If there is no reference to the current XIC, try to reset both XICs. + */ ++ preeditAttr = XVaCreateNestedList(0, XNPreeditState, &preeditState, ++ NULL); ++ if (!XGetICValues(pX11IMData->ic_active, XNPreeditAttributes, ++ preeditAttr, NULL)) { ++ bGetState = TRUE; ++ } ++ XFree(preeditAttr); ++ + xText = XmbResetIC(pX11IMData->ic_active); ++ ++ if (bGetState) { ++ preeditAttr = XVaCreateNestedList(0, XNPreeditState, ++ preeditState, 0); ++ XSetICValues(pX11IMData->ic_active, XNPreeditAttributes, ++ preeditAttr, NULL); ++ XFree(preeditAttr); ++ } ++ + /*it may also means that the real client component does + not have focus -- has been deactivated... its xic should + not have the focus, bug#4284651 showes reset XIC for htt -- cgit v1.1