Bug 529327: [GTK3] [hidpi] Dragging and dropping editor tabs does not work when "Scale for menu and title bar" (Unity/Ubuntu Display Settings) is other than "1"
org/eclipse/swt/widgets/Control.java (gtk)
Applies DPIUtil.autoScaleDown to mouse event coordinates before
submitting to sendDragEvent.
Signed-off-by: Janis Danisevskis <werwurm@gmail.com>
Change-Id: Ib1e37446f257b8e82537ecd059ae8440561e919b
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
index 618caa2..dfad767 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
@@ -3284,7 +3284,8 @@
*/
if (OS.isX11()) { // Wayland
if (dragging) {
- sendDragEvent (gdkEvent.button, gdkEvent.state, (int) gdkEvent.x, (int) gdkEvent.y, false);
+ Point scaledEvent = DPIUtil.autoScaleDown(new Point((int)gdkEvent.x, (int) gdkEvent.y));
+ sendDragEvent (gdkEvent.button, gdkEvent.state, scaledEvent.x, scaledEvent.y, false);
if (isDisposed ()) return 1;
}
}
@@ -3622,7 +3623,8 @@
GdkEventButton gdkEvent1 = new GdkEventButton ();
OS.memmove (gdkEvent1, event, GdkEventButton.sizeof);
if (gdkEvent1.type == OS.GDK_3BUTTON_PRESS) return 0;
- if (sendDragEvent (gdkEvent1.button, gdkEvent1.state, (int) gdkEvent1.x, (int) gdkEvent1.y, false)){
+ Point scaledEvent = DPIUtil.autoScaleDown(new Point((int)gdkEvent1.x, (int) gdkEvent1.y));
+ if (sendDragEvent (gdkEvent1.button, gdkEvent1.state, scaledEvent.x, scaledEvent.y, false)){
return 1;
}
}