diff options
author | farshadmuhammad <farshadmuhammad@cmail.carleton.ca> | 2013-07-19 15:50:38 -0400 |
---|---|---|
committer | farshadmuhammad <farshadmuhammad@cmail.carleton.ca> | 2013-07-19 15:50:38 -0400 |
commit | b8b72a7bb7f3a822c7ba290f1b9aef386b80ccbf (patch) | |
tree | b10b95570105455e88e1356efee8ca6c54f3f283 /native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c | |
parent | 4c1b567bb1c279f343cd4b5188cd2172af960e3f (diff) | |
download | classpath-b8b72a7bb7f3a822c7ba290f1b9aef386b80ccbf.tar.gz |
GTK3 commit - Farshad Muhammad
Diffstat (limited to 'native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c')
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c index 6066a6bb2..ee289f2ed 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c @@ -241,13 +241,25 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates GdkDisplay *display; gint x, y, screenIndex; GdkScreen *screen; + #if GTK_MAJOR_VERSION == 3 + GdkDeviceManager *device_manager; + GdkDevice *device; + #endif + display = (GdkDisplay *) gtkpeer_get_display(env, obj); g_assert (display != NULL); gdk_threads_enter (); + #if GTK_MAJOR_VERSION == 2 gdk_display_get_pointer (display, &screen, &x, &y, NULL); + #elif GTK_MAJOR_VERSION == 3 + device_manager = gdk_display_get_device_manager (display); + device = gdk_device_manager_get_client_pointer (device_manager); + gdk_device_get_position (device, &screen, &x, &y); + #endif + screenIndex = gdk_screen_get_number( screen ); gdk_threads_leave (); @@ -274,7 +286,10 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse GtkWidget *windowToTest = NULL; GdkWindow *windowAtPointer = NULL; jboolean retVal = JNI_FALSE; - + #if GTK_MAJOR_VERSION == 3 + GdkDeviceManager *device_manager; + GdkDevice *device; + #endif display = (GdkDisplay *) gtkpeer_get_display (env, obj); g_assert (display != NULL); @@ -282,10 +297,17 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse gdk_threads_enter (); + #if GTK_MAJOR_VERSION == 3 + device_manager = gdk_display_get_device_manager (display); + device = gdk_device_manager_get_client_pointer (device_manager); + windowAtPointer = gdk_device_get_window_at_position(device, &x, &y); + #elif GTK_MAJOR_VERSION == 2 windowAtPointer = gdk_display_get_window_at_pointer (display, &x, &y); + #endif while (windowAtPointer - && windowAtPointer != windowToTest->window) + //&& windowAtPointer != windowToTest->window) + && windowAtPointer != gtk_widget_get_window(windowToTest)) windowAtPointer = gdk_window_get_parent (windowAtPointer); gdk_threads_leave (); |