Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov2018-02-17 08:43:22 +0000
committerAlexander Kurtakov2018-02-17 08:58:40 +0000
commit70f387a1563eef80fa412a4911dd5698e3a61860 (patch)
treea02a1361ac67773a666a1601938400e980a9ab80
parent5c341b76570ceaddabc473b515570c12ff349d1c (diff)
downloadeclipse.platform.swt-70f387a1563eef80fa412a4911dd5698e3a61860.tar.gz
eclipse.platform.swt-70f387a1563eef80fa412a4911dd5698e3a61860.tar.xz
eclipse.platform.swt-70f387a1563eef80fa412a4911dd5698e3a61860.zip
Bug 530387 - [GTK3] Replace deprecated
gdk_device_manager_get_client_pointer() Retrieve pointer from GdkSeat on Gtk 3.20+. Change-Id: I39c148ebd00ccde9e3b0823d2dd92b387bee322b Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java6
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDK.java11
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Widget.java11
6 files changed, 23 insertions, 27 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
index 088d60919b..6b65307a5b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DragSource.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -362,8 +362,7 @@ void dragEnd(long /*int*/ widget, long /*int*/ context){
*/
if (GTK.GTK3) {
long /*int*/ display = GDK.gdk_window_get_display(GTK.gtk_widget_get_window(widget));
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager(display);
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer(device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer(display);
long /*int*/ keyboard = GDK.gdk_device_get_associated_device(pointer);
GDK.gdk_device_ungrab(pointer, GDK.GDK_CURRENT_TIME);
GDK.gdk_device_ungrab(keyboard, GDK.GDK_CURRENT_TIME);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
index 9458c8ee03..dfa52f7a9d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk/org/eclipse/swt/dnd/DropTarget.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -566,8 +566,7 @@ int getOperationFromKeyState() {
int[] state = new int[1];
if (GTK.GTK3) {
long /*int*/ root = GDK.gdk_get_default_root_window ();
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (GDK.gdk_window_get_display (root));
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer (GDK.gdk_window_get_display (root));
GDK.gdk_window_get_device_position(root, pointer, null, null, state);
} else {
GDK.gdk_window_get_pointer(0, null, null, state);
@@ -816,5 +815,4 @@ void updateDragOverHover(long delay, DNDEvent event) {
dragOverEvent.operations = event.operations;
dragOverEvent.time = event.time;
}
-
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDK.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDK.java
index 84fc1bf5c5..aeba7b06bd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDK.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GDK.java
@@ -2738,7 +2738,14 @@ public class GDK extends OS {
}
}
-
-
+ public static long /*int*/ gdk_get_pointer (long /*int*/ display) {
+ if (GTK.GTK_VERSION >= OS.VERSION(3, 20, 0)) {
+ long /*int*/ default_seat = GDK.gdk_display_get_default_seat(display);
+ return GDK.gdk_seat_get_pointer(default_seat);
+ } else {
+ long /*int*/ device_manager = GDK.gdk_display_get_device_manager(display);
+ return GDK.gdk_device_manager_get_client_pointer(device_manager);
+ }
+ }
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
index cd9a2264f3..d8ac517669 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Display.java
@@ -4360,8 +4360,7 @@ public boolean post (Event event) {
return false;
}
if (GTK.GTK3) {
- long /*int*/ gdkDeviceManager = GDK.gdk_display_get_device_manager(gdkDisplay);
- long /*int*/ gdkPointer = GDK.gdk_device_manager_get_client_pointer(gdkDeviceManager);
+ long /*int*/ gdkPointer = GDK.gdk_get_pointer(gdkDisplay);
GDK.gdk_window_get_device_position(gdkWindow, gdkPointer, x, y, new int[1]);
} else {
GDK.gdk_window_get_pointer(gdkWindow, x, y, new int[1]);
@@ -5057,8 +5056,7 @@ void setCursorLocationInPixels (Point location) {
if (!GTK.GTK3) {
GDK.gdk_display_warp_pointer(gdkDisplay, gdkScreen, location.x, location.y);
} else {
- long /*int*/ gdkDeviceManager = GDK.gdk_display_get_device_manager(gdkDisplay);
- long /*int*/ gdkPointer = GDK.gdk_device_manager_get_client_pointer(gdkDeviceManager);
+ long /*int*/ gdkPointer = GDK.gdk_get_pointer(gdkDisplay);
GDK.gdk_device_warp(gdkPointer, gdkScreen, location.x, location.y);
}
}
@@ -5879,8 +5877,7 @@ long /*int*/ gdk_window_get_device_position (long /*int*/ window, int[] x, int[]
window = GDK.gdk_get_default_root_window ();
display = GDK.gdk_window_get_display (window);
}
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (display);
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer (display);
return GDK.gdk_window_get_device_position(window, pointer, x, y, mask);
} else {
return GDK.gdk_window_get_pointer (window, x, y, mask);
@@ -5890,8 +5887,7 @@ long /*int*/ gdk_window_get_device_position (long /*int*/ window, int[] x, int[]
long /*int*/ gdk_device_get_window_at_position (int[] win_x, int[] win_y) {
if (GTK.GTK3) {
long /*int*/ display = GDK.gdk_display_get_default ();
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (display);
- long /*int*/ device = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ device = GDK.gdk_get_pointer(display);
return GDK.gdk_device_get_window_at_position (device, win_x, win_y);
} else {
return GDK.gdk_window_at_pointer (win_x, win_y);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java
index 3b667b4d3d..826e703f65 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -242,8 +242,7 @@ void _setVisible (boolean visible) {
GdkEventButton event = new GdkEventButton ();
event.type = GDK.GDK_BUTTON_PRESS;
event.window = OS.g_object_ref(GTK.gtk_widget_get_window (getShell().handle));
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (GDK.gdk_display_get_default ());
- event.device = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ event.device = GDK.gdk_get_pointer(GDK.gdk_display_get_default ());
event.time = display.getLastEventTime ();
OS.memmove (eventPtr, event, GdkEventButton.sizeof);
GTK.gtk_menu_popup_at_pointer (handle, eventPtr);
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 2da1da5196..2ef3f70b45 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -1846,8 +1846,7 @@ int gdk_pointer_grab (long /*int*/ window, int grab_ownership, boolean owner_eve
window = GDK.gdk_get_default_root_window ();
display = GDK.gdk_window_get_display (window);
}
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (display);
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer(display);
return GDK.gdk_device_grab (pointer, window, grab_ownership, owner_events, event_mask, cursor, time_);
} else {
return GDK.gdk_pointer_grab (window, owner_events, event_mask, confine_to, cursor, time_);
@@ -1857,8 +1856,7 @@ int gdk_pointer_grab (long /*int*/ window, int grab_ownership, boolean owner_eve
void gdk_pointer_ungrab (long /*int*/ window, int time_) {
if (GTK.GTK3) {
long /*int*/ display = GDK.gdk_window_get_display (window);
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (display);
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer(display);
GDK.gdk_device_ungrab (pointer, time_);
} else {
GDK.gdk_pointer_ungrab (time_);
@@ -2028,8 +2026,7 @@ long /*int*/ gdk_window_get_device_position (long /*int*/ window, int[] x, int[]
window = GDK.gdk_get_default_root_window ();
display = GDK.gdk_window_get_display (window);
}
- long /*int*/ device_manager = GDK.gdk_display_get_device_manager (display);
- long /*int*/ pointer = GDK.gdk_device_manager_get_client_pointer (device_manager);
+ long /*int*/ pointer = GDK.gdk_get_pointer(display);
return GDK.gdk_window_get_device_position(window, pointer, x, y, mask);
} else {
return GDK.gdk_window_get_pointer (window, x, y, mask);

Back to the top