< prev index next >

src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c

Print this page
rev 50285 : 8201429: Support AIX Input Method Editor (IME) for AWT Input Method Framework (IMF)

*** 1,7 **** /* ! * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 21,55 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ #include "sun_awt_X11_XlibWrapper.h" ! #include <X11/Xlib.h> ! #include <X11/keysym.h> ! #include <X11/Xutil.h> ! #include <X11/Xos.h> ! #include <X11/Xatom.h> #include <X11/extensions/Xdbe.h> #include <X11/extensions/shape.h> ! #include <string.h> ! #include <stdlib.h> #include <X11/Sunkeysym.h> ! ! #include <jni.h> ! #include <jni_util.h> ! #include <jlong.h> ! #include <sizecalc.h> ! ! #include <awt.h> ! #include <awt_util.h> ! #include <jvm.h> ! ! #include <Region.h> ! #include "utility/rect.h" ! #include <X11/XKBlib.h> // From XWindow.c extern KeySym keycodeToKeysym(Display *display, KeyCode keycode, int index); #if defined(DEBUG) --- 21,56 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ + #include "awt.h" + #include "awt_util.h" + #include "jni.h" + #include "jlong.h" + #include "Region.h" + #include "sizecalc.h" + #include "utility/rect.h" + #include "sun_awt_X11_XlibWrapper.h" ! ! #include <stdlib.h> ! #include <string.h> #include <X11/extensions/Xdbe.h> #include <X11/extensions/shape.h> ! #include <X11/keysym.h> #include <X11/Sunkeysym.h> ! #include <X11/Xlib.h> ! #include <X11/Xatom.h> #include <X11/XKBlib.h> + #include <X11/Xos.h> + #include <X11/Xutil.h> + + #if defined(AIX) + #undef X_HAVE_UTF8_STRING + extern Bool statusWindowEventHandler(XEvent event); + #endif // From XWindow.c extern KeySym keycodeToKeysym(Display *display, KeyCode keycode, int index); #if defined(DEBUG)
*** 286,296 **** (JNIEnv *env , jclass clazz, jlong display) { AWT_CHECK_HAVE_LOCK_RETURN(0); return ScreenCount((Display *) jlong_to_ptr(display)); } - /* * Class: XlibWrapper * Method: XCreateWindow * Signature: (JJIIIIIIJJJJ)J */ --- 287,296 ----
*** 301,311 **** { AWT_CHECK_HAVE_LOCK_RETURN(0); return XCreateWindow((Display *) jlong_to_ptr(display),(Window) window, x, y, w, h, border_width, depth, wclass, (Visual *) jlong_to_ptr(visual), valuemask, (XSetWindowAttributes *) jlong_to_ptr(attributes)); - } /* * Class: XlibWrapper * Method: XConvertCase --- 301,310 ----
*** 318,339 **** AWT_CHECK_HAVE_LOCK(); XConvertCase(keysym, (jlong_to_ptr(keysym_lowercase)), (jlong_to_ptr(keysym_uppercase))); } - /* * Class: XlibWrapper * Method: XMapWindow * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMapWindow (JNIEnv *env, jclass clazz, jlong display, jlong window) { AWT_CHECK_HAVE_LOCK(); XMapWindow( (Display *)jlong_to_ptr(display),(Window) window); - } /* * Class: XlibWrapper * Method: XMapRaised --- 317,336 ----
*** 342,394 **** JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMapRaised (JNIEnv *env, jclass clazz, jlong display, jlong window) { AWT_CHECK_HAVE_LOCK(); XMapRaised( (Display *)jlong_to_ptr(display),(Window) window); - } /* * Class: XlibWrapper * Method: XRaiseWindow * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XRaiseWindow (JNIEnv *env, jclass clazz, jlong display, jlong window) { - AWT_CHECK_HAVE_LOCK(); XRaiseWindow( (Display *)jlong_to_ptr(display),(Window) window); - } /* * Class: XlibWrapper * Method: XLowerWindow * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XLowerWindow (JNIEnv *env, jclass clazz, jlong display, jlong window) { - AWT_CHECK_HAVE_LOCK(); XLowerWindow( (Display *)jlong_to_ptr(display),(Window) window); - } /* * Class: XlibWrapper * Method: XRestackWindows * Signature: (JJI)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XRestackWindows (JNIEnv *env, jclass clazz, jlong display, jlong windows, jint length) { - AWT_CHECK_HAVE_LOCK(); XRestackWindows( (Display *) jlong_to_ptr(display), (Window *) jlong_to_ptr(windows), length); - } /* * Class: XlibWrapper * Method: XConfigureWindow --- 339,384 ----
*** 409,454 **** * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetInputFocus (JNIEnv *env, jclass clazz, jlong display, jlong window) { - AWT_CHECK_HAVE_LOCK(); XSetInputFocus( (Display *)jlong_to_ptr(display),(Window) window, RevertToPointerRoot, CurrentTime); - } /* * Class: XlibWrapper * Method: XSetInputFocus2 * Signature: (JJJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetInputFocus2 (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong time) { - AWT_CHECK_HAVE_LOCK(); XSetInputFocus( (Display *)jlong_to_ptr(display),(Window) window, RevertToPointerRoot, time); - } /* * Class: XlibWrapper * Method: XGetInputFocus * Signature: (JJ)V */ JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XGetInputFocus (JNIEnv *env, jclass clazz, jlong display) { - Window focusOwner; int revert_to; AWT_CHECK_HAVE_LOCK_RETURN(0); XGetInputFocus( (Display *)jlong_to_ptr(display), &focusOwner, &revert_to); return focusOwner; } - /* * Class: XlibWrapper * Method: XDestroyWindow * Signature: (JJ)V */ --- 399,439 ---- * Signature: (JJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetInputFocus (JNIEnv *env, jclass clazz, jlong display, jlong window) { AWT_CHECK_HAVE_LOCK(); XSetInputFocus( (Display *)jlong_to_ptr(display),(Window) window, RevertToPointerRoot, CurrentTime); } + /* * Class: XlibWrapper * Method: XSetInputFocus2 * Signature: (JJJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetInputFocus2 (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong time) { AWT_CHECK_HAVE_LOCK(); XSetInputFocus( (Display *)jlong_to_ptr(display),(Window) window, RevertToPointerRoot, time); } /* * Class: XlibWrapper * Method: XGetInputFocus * Signature: (JJ)V */ JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XGetInputFocus (JNIEnv *env, jclass clazz, jlong display) { Window focusOwner; int revert_to; AWT_CHECK_HAVE_LOCK_RETURN(0); XGetInputFocus( (Display *)jlong_to_ptr(display), &focusOwner, &revert_to); return focusOwner; } /* * Class: XlibWrapper * Method: XDestroyWindow * Signature: (JJ)V */
*** 523,534 **** AWT_CHECK_HAVE_LOCK(); XUnmapWindow( (Display *)jlong_to_ptr(display),(Window) window); } - - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSelectInput (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong mask) { AWT_CHECK_HAVE_LOCK(); XSelectInput((Display *) jlong_to_ptr(display), (Window) window, mask); --- 508,517 ----
*** 541,560 **** --- 524,545 ---- AWT_CHECK_HAVE_LOCK(); XkbSelectEvents((Display *) jlong_to_ptr(display), (unsigned int)device, (unsigned long)bits_to_change, (unsigned long)values_for_bits); } + JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XkbSelectEventDetails (JNIEnv *env, jclass clazz, jlong display, jlong device, jlong event_type, jlong bits_to_change, jlong values_for_bits) { AWT_CHECK_HAVE_LOCK(); XkbSelectEventDetails((Display *) jlong_to_ptr(display), (unsigned int)device, (unsigned int) event_type, (unsigned long)bits_to_change, (unsigned long)values_for_bits); } + JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbQueryExtension (JNIEnv *env, jclass clazz, jlong display, jlong opcode_rtrn, jlong event_rtrn, jlong error_rtrn, jlong major_in_out, jlong minor_in_out) { Bool status;
*** 565,574 **** --- 550,560 ---- (int *) jlong_to_ptr(error_rtrn), (int *) jlong_to_ptr(major_in_out), (int *) jlong_to_ptr(minor_in_out)); return status ? JNI_TRUE : JNI_FALSE; } + JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XkbLibraryVersion (JNIEnv *env, jclass clazz, jlong lib_major_in_out, jlong lib_minor_in_out) { Bool status; AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE);
*** 585,594 **** --- 571,581 ---- AWT_CHECK_HAVE_LOCK_RETURN(0); return (jlong) XkbGetMap( (Display *) jlong_to_ptr(display), (unsigned int) which, (unsigned int) device_spec); } + JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbGetUpdatedMap (JNIEnv *env, jclass clazz, jlong display, jlong which, jlong xkb) { AWT_CHECK_HAVE_LOCK_RETURN(0); return (jlong) XkbGetUpdatedMap( (Display *) jlong_to_ptr(display),
*** 624,635 **** /* * Class: sun_awt_X11_XlibWrapper * Method: XNextEvent * Signature: (JJ)V */ - - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XNextEvent (JNIEnv *env, jclass clazz, jlong display, jlong ptr) { AWT_CHECK_HAVE_LOCK(); XNextEvent( (Display *) jlong_to_ptr(display), jlong_to_ptr(ptr)); --- 611,620 ----
*** 638,648 **** /* * Class: sun_awt_X11_XlibWrapper * Method: XMaskEvent * Signature: (JJJ)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMaskEvent (JNIEnv *env, jclass clazz, jlong display, jlong event_mask, jlong event_return) { AWT_CHECK_HAVE_LOCK(); XMaskEvent( (Display *) jlong_to_ptr(display), event_mask, (XEvent *) jlong_to_ptr(event_return)); --- 623,632 ----
*** 651,661 **** /* * Class: sun_awt_X11_XlibWrapper * Method: XWindowEvent * Signature: (JJJJ)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XWindowEvent (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong event_mask, jlong event_return) { AWT_CHECK_HAVE_LOCK(); XWindowEvent( (Display *) jlong_to_ptr(display), (Window)window, event_mask, (XEvent *) jlong_to_ptr(event_return)); --- 635,644 ----
*** 668,677 **** --- 651,665 ---- */ JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XFilterEvent (JNIEnv *env, jclass clazz, jlong ptr, jlong window) { AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); + #if defined(AIX) + if (True == statusWindowEventHandler(*((XEvent *)(uintptr_t)ptr))) { + return (jboolean)True; + } + #endif return (jboolean) XFilterEvent((XEvent *) jlong_to_ptr(ptr), (Window) window); } /* * Class: sun_awt_X11_XlibWrapper
*** 725,788 **** { AWT_CHECK_HAVE_LOCK(); XPeekEvent((Display *) jlong_to_ptr(display),jlong_to_ptr(ptr)); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XMoveResizeWindow * Signature: (JJIIII)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMoveResizeWindow (JNIEnv *env, jclass clazz, jlong display, jlong window, jint x , jint y , jint width, jint height) { - AWT_CHECK_HAVE_LOCK(); XMoveResizeWindow( (Display *) jlong_to_ptr(display), (Window) window, x, y, width, height); - } /* * Class: sun_awt_X11_XlibWrapper * Method: XResizeWindow * Signature: (JJII)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XResizeWindow ! (JNIEnv *env, jclass clazz, jlong display, jlong window, jint width, jint height) ! { AWT_CHECK_HAVE_LOCK(); XResizeWindow( (Display *) jlong_to_ptr(display),(Window) window,width,height); } /* * Class: sun_awt_X11_XlibWrapper * Method: XMoveWindow * Signature: (JJII)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMoveWindow ! (JNIEnv *env, jclass clazz, jlong display, jlong window, jint width, jint height) ! { AWT_CHECK_HAVE_LOCK(); XMoveWindow( (Display *) jlong_to_ptr(display),(Window) window,width,height); } /* * Class: sun_awt_X11_XlibWrapper * Method: XSetWindowBackground * Signature: (JJJ)V */ - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetWindowBackground (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong background_pixel) { - AWT_CHECK_HAVE_LOCK(); XSetWindowBackground((Display *) jlong_to_ptr(display),window,background_pixel); - } /* * Class: sun_awt_X11_XlibWrapper --- 713,765 ---- { AWT_CHECK_HAVE_LOCK(); XPeekEvent((Display *) jlong_to_ptr(display),jlong_to_ptr(ptr)); } /* * Class: sun_awt_X11_XlibWrapper * Method: XMoveResizeWindow * Signature: (JJIIII)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMoveResizeWindow (JNIEnv *env, jclass clazz, jlong display, jlong window, jint x , jint y , jint width, jint height) { AWT_CHECK_HAVE_LOCK(); XMoveResizeWindow( (Display *) jlong_to_ptr(display), (Window) window, x, y, width, height); } /* * Class: sun_awt_X11_XlibWrapper * Method: XResizeWindow * Signature: (JJII)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XResizeWindow ! (JNIEnv *env, jclass clazz, jlong display, jlong window, jint width, jint height) { AWT_CHECK_HAVE_LOCK(); XResizeWindow( (Display *) jlong_to_ptr(display),(Window) window,width,height); } /* * Class: sun_awt_X11_XlibWrapper * Method: XMoveWindow * Signature: (JJII)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XMoveWindow ! (JNIEnv *env, jclass clazz, jlong display, jlong window, jint width, jint height) { AWT_CHECK_HAVE_LOCK(); XMoveWindow( (Display *) jlong_to_ptr(display),(Window) window,width,height); } /* * Class: sun_awt_X11_XlibWrapper * Method: XSetWindowBackground * Signature: (JJJ)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetWindowBackground (JNIEnv *env, jclass clazz, jlong display, jlong window, jlong background_pixel) { AWT_CHECK_HAVE_LOCK(); XSetWindowBackground((Display *) jlong_to_ptr(display),window,background_pixel); } /* * Class: sun_awt_X11_XlibWrapper
*** 801,814 **** * Method: XSync * Signature: (JI)V */ JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSync (JNIEnv *env, jclass clazz, jlong display, jint discard) { - AWT_CHECK_HAVE_LOCK(); XSync((Display *) jlong_to_ptr(display), discard); - } JNIEXPORT jint JNICALL Java_sun_awt_X11_XlibWrapper_XTranslateCoordinates (JNIEnv *env, jclass clazz, jlong display, jlong src_w, jlong dest_w, jlong src_x, jlong src_y, jlong dest_x_return, jlong dest_y_return, --- 778,789 ----
*** 853,874 **** CHECK_NULL(cname); } else { cname = ""; } - AWT_CHECK_HAVE_LOCK(); #ifdef X_HAVE_UTF8_STRING status = Xutf8TextListToTextProperty((Display *)jlong_to_ptr(display), &cname, 1, XStdICCTextStyle, &tp); #else status = XmbTextListToTextProperty((Display *)jlong_to_ptr(display), &cname, 1, XStdICCTextStyle, &tp); #endif - if (status == Success || status > 0) { XChangeProperty((Display *)jlong_to_ptr(display), window, atom, tp.encoding, tp.format, PropModeReplace, tp.value, tp.nitems); if (tp.value != NULL) { XFree(tp.value); } --- 828,847 ----
*** 1003,1013 **** (JNIEnv *env, jclass clazz, jlong display, jint shape) { AWT_CHECK_HAVE_LOCK_RETURN(0); return XCreateFontCursor((Display *) jlong_to_ptr(display), (int) shape); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XCreatePixmapCursor * Signature: (JJJJJII)J */ --- 976,985 ----
*** 1017,1027 **** AWT_CHECK_HAVE_LOCK_RETURN(0); return (jlong) XCreatePixmapCursor((Display *) jlong_to_ptr(display), (Pixmap) source, (Pixmap) mask, (XColor *) jlong_to_ptr(fore), (XColor *) jlong_to_ptr(back), x, y); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XQueryBestCursor * Signature: (JJIIJJ)Z */ --- 989,998 ----
*** 1036,1046 **** if (status == 0) return JNI_FALSE; else return JNI_TRUE; } - /* * Class: sun_awt_X11_XlibWrapper * Method: XFreeCursor * Signature: (JJ)V */ --- 1007,1016 ----
*** 1082,1092 **** AWT_CHECK_HAVE_LOCK(); XChangeWindowAttributes((Display *) jlong_to_ptr(display), (Window) window, (unsigned long) valuemask, (XSetWindowAttributes *) jlong_to_ptr(attributes)); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XSetTransientFor * Signature: (JJJ)V */ --- 1052,1061 ----
*** 1179,1189 **** } else { return NULL; } } - /* * Class: sun_awt_X11_XlibWrapper * Method: getScreenOfWindow * Signature: (JJ)J */ --- 1148,1157 ----
*** 1251,1261 **** (*env)->SetByteArrayRegion(env, res, 0, length, (const signed char*) str); return res; } - /* * Class: sun_awt_X11_XlibWrapper * Method: ServerVendor * Signature: (J)Ljava/lang/String; */ --- 1219,1228 ----
*** 1263,1272 **** --- 1230,1240 ---- (JNIEnv *env, jclass clazz, jlong display) { AWT_CHECK_HAVE_LOCK_RETURN(NULL); return JNU_NewStringPlatform(env, ServerVendor((Display*)jlong_to_ptr(display))); } + /* * Class: sun_awt_X11_XlibWrapper * Method: VendorRelease * Signature: (J)I; */
*** 1274,1283 **** --- 1242,1252 ---- (JNIEnv *env, jclass clazz, jlong display) { AWT_CHECK_HAVE_LOCK_RETURN(0); return VendorRelease((Display*)jlong_to_ptr(display)); } + /* * Class: sun_awt_X11_XlibWrapper * Method: IsXsunKPBehavior * Signature: (J)Z; */
*** 1307,1317 **** return JNI_FALSE; } } } - JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_IsSunKeyboard (JNIEnv *env, jclass clazz, jlong display) { int xx; AWT_CHECK_HAVE_LOCK_RETURN(JNI_FALSE); --- 1276,1285 ----
*** 1405,1415 **** (JNIEnv *env, jclass clazz, jlong handler, jlong display, jlong event_ptr) { return (*(XErrorHandler)jlong_to_ptr(handler))((Display*) jlong_to_ptr(display), (XErrorEvent*) jlong_to_ptr(event_ptr)); } - /* * Class: sun_awt_X11_XlibWrapper * Method: PrintXErrorEvent * Signature: (JJ)V */ --- 1373,1382 ----
*** 1429,1439 **** if (err->request_code > 128) { jio_fprintf(stderr, "Minor opcode %d\n", err->minor_code); } } - /* * Class: sun_awt_X11_XlibWrapper * Method: XInternAtoms * Signature: (J[Ljava/lang/String;ZJ)I */ --- 1396,1405 ----
*** 1449,1460 **** freeNativeStringArray(names, length); } return status; } - - /* * Class: sun_awt_X11_XlibWrapper * Method: XGetWindowAttributes * Signature: (JJJ)I */ --- 1415,1424 ----
*** 1466,1476 **** memset((XWindowAttributes*) jlong_to_ptr(attr_ptr), 0, sizeof(XWindowAttributes)); status = XGetWindowAttributes((Display*)jlong_to_ptr(display), window, (XWindowAttributes*) jlong_to_ptr(attr_ptr)); return status; } - /* * Class: sun_awt_X11_XlibWrapper * Method: XGetGeometry * Signature: (JJJJJJJJJ)I */ --- 1430,1439 ----
*** 1488,1498 **** (unsigned int *)jlong_to_ptr(border_width_return), (unsigned int *)jlong_to_ptr(depth_return)); return status; } - /* * Class: sun_awt_X11_XlibWrapper * Method: XGetWMNormalHints * Signature: (JJJJ)I */ --- 1451,1460 ----
*** 1544,1554 **** propagate==JNI_TRUE?True:False, (long) event_mask, (XEvent*) jlong_to_ptr(event)); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XQueryTree * Signature: (JJJJJJ)I */ --- 1506,1515 ----
*** 1562,1572 **** (Window*) jlong_to_ptr(parent_return), (Window**) jlong_to_ptr(children_return), (unsigned int*) jlong_to_ptr(nchildren_return)); } - /* * Class: sun_awt_X11_XlibWrapper * Method: memcpy * Signature: (JJJ)V */ --- 1523,1532 ----
*** 1574,1584 **** (JNIEnv *env, jclass clazz, jlong dest_ptr, jlong src_ptr, jlong length) { memcpy(jlong_to_ptr(dest_ptr), jlong_to_ptr(src_ptr), length); } - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetMinMaxHints (JNIEnv *env, jclass clazz, jlong display, jlong window, jint x, jint y, jint width, jint height, jlong flags) { XSizeHints * hints; AWT_CHECK_HAVE_LOCK(); hints = XAllocSizeHints(); --- 1534,1543 ----
*** 1593,1603 **** hints->y = y; XSetWMNormalHints((Display*) jlong_to_ptr(display), window, hints); XFree(hints); } - JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XGetVisualInfo (JNIEnv *env, jclass clazz, jlong display, jlong vinfo_mask, jlong vinfo_template, jlong nitems_return) { AWT_CHECK_HAVE_LOCK_RETURN(0); --- 1552,1561 ----
*** 1624,1634 **** { AWT_CHECK_HAVE_LOCK(); XBell((Display*)jlong_to_ptr(display), percent); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XAllocColor * Signature: (JJJ)Z */ --- 1582,1591 ----
*** 1641,1651 **** if (status == 0) return JNI_FALSE; else return JNI_TRUE; } - /* * Class: sun_awt_X11_XlibWrapper * Method: XCreateBitmapFromData * Signature: (JJJII)J */ --- 1598,1607 ----
*** 1655,1665 **** return (jlong) XCreateBitmapFromData((Display *) jlong_to_ptr(display), (Drawable) drawable, (char *) jlong_to_ptr(data), width, height); } - /* * Class: sun_awt_X11_XlibWrapper * Method: XFreePixmap * Signature: (JJ)V */ --- 1611,1620 ----
*** 1770,1779 **** --- 1725,1735 ---- Java_sun_awt_X11_XlibWrapper_XCreatePixmap(JNIEnv *env, jclass clazz, jlong display, jlong drawable, jint width, jint height, jint depth) { AWT_CHECK_HAVE_LOCK_RETURN(0); return XCreatePixmap((Display*)jlong_to_ptr(display), (Drawable)drawable, width, height, depth); } + JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XCreateImage (JNIEnv *env, jclass clazz, jlong display, jlong visual_ptr, jint depth, jint format, jint offset, jlong data, jint width, jint height, jint bitmap_pad, jint bytes_per_line)
*** 1781,1790 **** --- 1737,1747 ---- AWT_CHECK_HAVE_LOCK_RETURN(0); return ptr_to_jlong(XCreateImage((Display*) jlong_to_ptr(display), (Visual*) jlong_to_ptr(visual_ptr), depth, format, offset, (char*) jlong_to_ptr(data), width, height, bitmap_pad, bytes_per_line)); } + JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XCreateGC (JNIEnv *env, jclass clazz, jlong display, jlong drawable, jlong valuemask, jlong values) {
*** 1804,1832 **** --- 1761,1793 ---- // So we should NULL the data pointer before calling XDestroyImage so // that X does not free the pointer for us. img->data = NULL; XDestroyImage(img); } + JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XPutImage(JNIEnv *env, jclass clazz, jlong display, jlong drawable, jlong gc, jlong image, jint src_x, jint src_y, jint dest_x, jint dest_y, jint width, jint height) { AWT_CHECK_HAVE_LOCK(); XPutImage((Display*)jlong_to_ptr(display), (Drawable)drawable, (GC) jlong_to_ptr(gc), (XImage*) jlong_to_ptr(image), src_x, src_y, dest_x, dest_y, width, height); } + JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XFreeGC(JNIEnv *env, jclass clazz, jlong display, jlong gc) { AWT_CHECK_HAVE_LOCK(); XFreeGC((Display*) jlong_to_ptr(display), (GC) jlong_to_ptr(gc)); } + JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XSetWindowBackgroundPixmap(JNIEnv *env, jclass clazz, jlong display, jlong window, jlong pixmap) { AWT_CHECK_HAVE_LOCK(); XSetWindowBackgroundPixmap((Display*) jlong_to_ptr(display), (Window)window, (Pixmap)pixmap); } + JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XClearWindow(JNIEnv *env, jclass clazz, jlong display, jlong window) { AWT_CHECK_HAVE_LOCK(); XClearWindow((Display*) jlong_to_ptr(display), (Window)window);
*** 1920,1930 **** return XdbeSwapBuffers((Display*) jlong_to_ptr(display), (XdbeSwapInfo *) jlong_to_ptr(swap_info), num_windows); } JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XQueryKeymap (JNIEnv *env, jclass clazz, jlong display, jlong vector) { - AWT_CHECK_HAVE_LOCK(); XQueryKeymap( (Display *) jlong_to_ptr(display), (char *) jlong_to_ptr(vector)); } // XKeycodeToKeysym is deprecated but for compatibility we keep the API. --- 1881,1890 ----
*** 1959,1968 **** --- 1919,1929 ---- // printf(" compat_lookup_mods:0x%0X\n",sr.compat_lookup_mods); // printf(" ptr_buttons:0x%0X\n",sr.ptr_buttons); // printf("-------------------------------------^^^^\n"); return (jint)(sr.group); } + JNIEXPORT jlong JNICALL Java_sun_awt_X11_XlibWrapper_XkbKeycodeToKeysym(JNIEnv *env, jclass clazz, jlong display, jint keycode, jint group, jint level) { AWT_CHECK_HAVE_LOCK_RETURN(0);
*** 1987,1996 **** --- 1948,1958 ---- Java_sun_awt_X11_XlibWrapper_XFreeModifiermap(JNIEnv *env, jclass clazz, jlong keymap) { AWT_CHECK_HAVE_LOCK(); XFreeModifiermap((XModifierKeymap*) jlong_to_ptr(keymap)); } + /* * Class: sun_awt_X11_XlibWrapper * Method: XRefreshKeyboardMapping * Signature: (J)V */
*** 2032,2042 **** (event->type == ConfigureNotify && event->xany.window == *(Window*) xawt_root_window) ) ? True : False; } - JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XlibWrapper_XNextSecondaryLoopEvent(JNIEnv *env, jclass clazz, jlong display, jlong ptr) { uint32_t timeout = 1; --- 1994,2003 ----
*** 2060,2070 **** DASSERT(!exitSecondaryLoop); AWT_CHECK_HAVE_LOCK(); exitSecondaryLoop = True; AWT_NOTIFY_ALL(); } - /*******************************************************************************/ JNIEXPORT jobjectArray JNICALL Java_sun_awt_X11_XlibWrapper_XTextPropertyToStringList(JNIEnv *env, jclass clazz, jbyteArray bytes, --- 2021,2030 ----
*** 2179,2189 **** */ XFreeStringList(strings); return ret; } - JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XPutBackEvent(JNIEnv *env, jclass clazz, jlong display, jlong event) { --- 2139,2148 ----
< prev index next >