mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
committed by
alexey.ushakov@jetbrains.com
parent
9c12c9adad
commit
bcb0e4a1d3
@@ -557,6 +557,17 @@ static native String XSetLocaleModifiers(String modifier_list);
|
||||
|
||||
static native void SetZOrder(long display, long window, long above);
|
||||
|
||||
// static native void XISetMask(long );
|
||||
// static native void XISelectEvents(long display, long window);
|
||||
//TODO replace it with more general func
|
||||
static native void SetupXI2(long display, long window);
|
||||
|
||||
static native boolean XGetEventData(long display, long ptr);
|
||||
static native void XFreeEventData(long display, long ptr);
|
||||
static XIDeviceEvent GetXIDeviceEvent(XGenericEventCookie cookie) {
|
||||
return new XIDeviceEvent(cookie.get_data());
|
||||
}
|
||||
|
||||
/* Global memory area used for X lib parameter passing */
|
||||
|
||||
static final long lbuffer = unsafe.allocateMemory(64); // array to hold 8 longs
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
#include <string.h>
|
||||
#include <X11/extensions/Xdbe.h>
|
||||
#include <X11/extensions/shape.h>
|
||||
#include <X11/extensions/XI2.h>
|
||||
#include <X11/extensions/XInput2.h>
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/Sunkeysym.h>
|
||||
#include <X11/Xlib.h>
|
||||
@@ -2316,6 +2318,52 @@ Java_sun_awt_X11_XlibWrapper_SetZOrder
|
||||
value_mask, &wc );
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: XlibWrapper
|
||||
* Method: SetupXI2
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_X11_XlibWrapper_SetupXI2
|
||||
(JNIEnv *env, jclass clazz, jlong display, jlong window)
|
||||
{
|
||||
unsigned char mask[XIMaskLen(XI_LASTEVENT)];
|
||||
memset(mask, 0, sizeof(mask));
|
||||
|
||||
XISetMask(mask, XI_TouchBegin);
|
||||
XISetMask(mask, XI_TouchUpdate);
|
||||
XISetMask(mask, XI_TouchEnd);
|
||||
|
||||
XIEventMask evmask;
|
||||
evmask.deviceid = XIAllDevices;
|
||||
evmask.mask_len = sizeof(mask);
|
||||
evmask.mask = mask;
|
||||
XISelectEvents((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window), &evmask, 1);
|
||||
XFlush((Display *)jlong_to_ptr(display));
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: XlibWrapper
|
||||
* Method: XGetEventData
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_sun_awt_X11_XlibWrapper_XGetEventData
|
||||
(JNIEnv *env, jclass clazz, jlong display, jlong ptr)
|
||||
{
|
||||
return XGetEventData((Display *)jlong_to_ptr(display),
|
||||
(XGenericEventCookie *)ptr_to_jlong(ptr)) ? JNI_TRUE : JNI_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: XlibWrapper
|
||||
* Method: XFreeEventData
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_X11_XlibWrapper_XFreeEventData
|
||||
(JNIEnv *env, jclass clazz, jlong display, jlong ptr)
|
||||
{
|
||||
return XFreeEventData((Display *)jlong_to_ptr(display), (XGenericEventCookie *)ptr_to_jlong(ptr));
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: XlibWrapper
|
||||
* Method: SetBitmapShape
|
||||
|
||||
Reference in New Issue
Block a user