diff -urN java.orig/j2se/src/solaris/native/sun/awt/awt_motif21.c java/j2se/src/solaris/native/sun/awt/awt_motif21.c --- java.orig/j2se/src/solaris/native/sun/awt/awt_motif21.c 2003-09-11 11:55:43.000000000 +1000 +++ java/j2se/src/solaris/native/sun/awt/awt_motif21.c 2003-10-27 10:12:14.000000000 +1100 @@ -15,14 +15,16 @@ #include "awt_p.h" #include "awt_Component.h" +/* LessTif does this slightly differently + * hgg + */ + #define XmPER_SHELL 0 extern XIC XmImGetXIC( Widget w, - uint32_t input_policy, + XmInputPolicy input_policy, ArgList args, Cardinal num_args) ; -extern int32_t _XmImGetGeo( - Widget vw) ; #define MAXARGS 10 static Arg xic_vlist[MAXARGS]; @@ -38,7 +40,7 @@ */ static Widget getTextWidget(jobject tc) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); - + if (mTextAreaClass == NULL) { jclass localClass = (*env)->FindClass(env, MTEXTAREAPEER_CLASS_NAME); mTextAreaClass = (jclass)(*env)->NewGlobalRef(env, localClass); @@ -86,12 +88,9 @@ XFree(im_rect); } else { im_height = 0; - } + } } - if (im_height == 0) { - im_height = _XmImGetGeo(w); - } #if defined(DEBUG) jio_fprintf(stderr,"awt_motif_getIMStatusHeight: Height = %d",im_height); @@ -119,7 +118,7 @@ char *ret; Widget p=w; - + while (!XtIsShell(p)) { p = XtParent(p); } diff -urN java.orig/j2se/src/solaris/native/sun/awt/awt_ScrollPane.c java/j2se/src/solaris/native/sun/awt/awt_ScrollPane.c --- java.orig/j2se/src/solaris/native/sun/awt/awt_ScrollPane.c 2003-09-11 11:55:42.000000000 +1000 +++ java/j2se/src/solaris/native/sun/awt/awt_ScrollPane.c 2003-10-27 10:13:42.000000000 +1100 @@ -169,18 +169,8 @@ NavigableCallback oldClipNavigable = NULL; Boolean clipCallbackInitialized = False; XmNavigability MyClipNavigable(Widget wid) { - // We've installed this function for ClipWindow - if (XmIsClipWindow(wid)) { - // To be able to request focus on ClipWindow by call - // XmProcessTraversal(, XmTRAVERSE_CURRENT) we need to make - // it return XmCONTROL_NAVIGABLE. Default implementation returns - // DESCENDANTS_TAB_NAVIGABLE which doesn't allow this. - return XmCONTROL_NAVIGABLE; - } - if (oldClipNavigable) { - return oldClipNavigable(wid); - } - // this will never happen + // I removed a function because LessTif handles this more gracefully + // hgg return XmCONTROL_NAVIGABLE; } diff -urN java.orig/j2se/src/solaris/native/sun/awt/multi_font.c java/j2se/src/solaris/native/sun/awt/multi_font.c --- java.orig/j2se/src/solaris/native/sun/awt/multi_font.c 2003-09-11 11:55:44.000000000 +1000 +++ java/j2se/src/solaris/native/sun/awt/multi_font.c 2003-10-27 01:07:50.000000000 +1100 @@ -327,16 +327,6 @@ return JNI_TRUE; } -#ifdef __linux__ -XmString -unicodeXmStringCreate(char* text, char* tag, int len) { - XmString ret_val; - XtProcessLock(); - ret_val = _XmStringNCreate (text, tag, len); - XtProcessUnlock(); - return ret_val; -} -#endif /* * Unicode to Motif Multi Font Compound String converter @@ -412,31 +402,6 @@ char *offsetStringData; offsetStringData = stringData + (4 * sizeof(char)); -#ifdef __linux__ - len = buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]; - /* Motif XmStringCreate() API requests "text must be a NULL-terminated - string" and its implementation uses "strlen()" to calculate the length - of the text string. Unfortunately when we deal with iso10646 font - on linux, the "text" is requested to be encoded in UTF16, which has the - posibility of including code points like "0xYY00" ("0xYY" + "0x00") that - causes problem when XmStringCreate() calls _XmStringNCreate() without - specifying a specific text lenth (see Motif XmString.c). The workaround is - to call _XmStringNCreate() directly with specific text length at this - cirsumstance. - */ - if (strstr(fdata->flist[fdnumber].charset_name, "UnicodeBigUnmarked")) - xmtmp1 = unicodeXmStringCreate(offsetStringData, tag, len); - else - xmtmp1 = XmStringCreate(offsetStringData, tag); - if (xmstr == NULL) - xmstr = xmtmp1; - else { - xmtmp2 = XmStringConcat(xmstr, xmtmp1); - XmStringFree(xmtmp1); - XmStringFree(xmstr); - xmstr = xmtmp2; - } -#else if(xmstr == NULL) { xmstr = XmStringCreate(offsetStringData, tag); } @@ -447,7 +412,6 @@ XmStringFree(xmstr); xmstr = xmtmp2; } -#endif } (*env)->ReleasePrimitiveArrayCritical(env, data, stringData, JNI_ABORT); .