diff options
author | Alexander Kurtakov | 2018-02-17 08:43:22 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2018-02-17 08:58:40 +0000 |
commit | 70f387a1563eef80fa412a4911dd5698e3a61860 (patch) | |
tree | a02a1361ac67773a666a1601938400e980a9ab80 | |
parent | 5c341b76570ceaddabc473b515570c12ff349d1c (diff) | |
download | eclipse.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>
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); |