< prev index next >
src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c
Print this page
rev 50172 : 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 >