summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
diff options
context:
space:
mode:
authorAnatoly Spektor <aspektor@redhat.com>2012-10-03 14:55:53 -0400
committerAlexander Kurtakov <akurtako@redhat.com>2012-10-04 14:53:08 +0300
commitc159a9553ef0699a68dfd8ee6cae8e56f4b4ccb4 (patch)
treeb10eac79ff016219c25e1c2b8f609b109bc15887 /bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
parenta025bf9445abd24cfb0807a29038b2face3f0f8a (diff)
downloadeclipse.platform.swt-c159a9553ef0699a68dfd8ee6cae8e56f4b4ccb4.tar.gz
eclipse.platform.swt-c159a9553ef0699a68dfd8ee6cae8e56f4b4ccb4.tar.xz
eclipse.platform.swt-c159a9553ef0699a68dfd8ee6cae8e56f4b4ccb4.zip
Replace gdk_window_get_pointer with gdk_window_get_device_position GTK3
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
index 02a53662e1..ed56af4328 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java
@@ -2014,4 +2014,21 @@ void gdk_cursor_unref (long /*int*/ cursor) {
}
}
+long /*int*/ gdk_window_get_device_position (long /*int*/ window, int[] x, int[] y, int[] mask) {
+ if (OS.GTK_VERSION >= OS.VERSION (3, 0, 0)) {
+ long /*int*/ display = 0;
+ if( window != 0) {
+ display = OS.gdk_window_get_display (window);
+ } else {
+ window = OS.gdk_get_default_root_window ();
+ display = OS.gdk_window_get_display (window);
+ }
+ long /*int*/ device_manager = OS.gdk_display_get_device_manager (display);
+ long /*int*/ pointer = OS.gdk_device_manager_get_client_pointer (device_manager);
+ return OS.gdk_window_get_device_position(window, pointer, x, y, mask);
+ } else {
+ return OS.gdk_window_get_pointer (window, x, y, mask);
+ }
+}
+
}