]> gerrit.simantics Code Review - simantics/3d.git/commitdiff
HiDPI fixes 87/3087/1
authorMarko Luukkainen <marko.luukkainen@semantum.fi>
Fri, 9 Aug 2019 14:27:58 +0000 (17:27 +0300)
committerMarko Luukkainen <marko.luukkainen@semantum.fi>
Fri, 9 Aug 2019 14:27:58 +0000 (17:27 +0300)
gitlab #22

Change-Id: Ib6589309b5b1d9ce3d9f1f369803b262df04ae76

vtk.rendering/src/vtk/rendering/swt/vtkSwtInteractorForwarderDecorator.java
vtk.rendering/src/vtk/rendering/vtkAbstractComponent.java

index 24ccabe1917809604ac1965125486a59088dfffc..562595640f4b2262f7687178c8cd3d3e0e3ddae8 100644 (file)
@@ -13,6 +13,7 @@ import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.events.MouseMoveListener;
 import org.eclipse.swt.events.MouseTrackListener;
 import org.eclipse.swt.events.MouseWheelListener;
+import org.eclipse.swt.internal.DPIUtil;
 
 /**
  * Decorator class used to implement all Mouse/Key SWT listener and convert them
@@ -55,7 +56,7 @@ implements MouseListener, MouseMoveListener, MouseTrackListener, MouseWheelListe
     if ((e.button == 1) || (e.stateMask & SWT.BUTTON1) != 0) button = java.awt.event.MouseEvent.BUTTON1;
     else if ((e.button == 2) || (e.stateMask & SWT.BUTTON2) != 0) button = java.awt.event.MouseEvent.BUTTON2;
     else if ((e.button == 3) || (e.stateMask & SWT.BUTTON3) != 0) button = java.awt.event.MouseEvent.BUTTON3;
-    return new java.awt.event.MouseEvent(dummyComponent, 0, (long)e.time, convertModifiers(e.button,e.stateMask), e.x, e.y, e.count, false, button);
+    return new java.awt.event.MouseEvent(dummyComponent, 0, (long)e.time, convertModifiers(e.button,e.stateMask), DPIUtil.autoScaleUp(e.x), DPIUtil.autoScaleUp(e.y), e.count, false, button);
   }
   
   public int convertKeyCode(int swtKeyCode) {
@@ -66,7 +67,7 @@ implements MouseListener, MouseMoveListener, MouseTrackListener, MouseWheelListe
   }
 
   public java.awt.event.MouseWheelEvent convertMouseWheelEvent(org.eclipse.swt.events.MouseEvent e) {
-    return new java.awt.event.MouseWheelEvent(dummyComponent, 0, e.time, convertModifiers(e.button,e.stateMask), e.x, e.y, 0, false, java.awt.event.MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, e.count);
+    return new java.awt.event.MouseWheelEvent(dummyComponent, 0, e.time, convertModifiers(e.button,e.stateMask), DPIUtil.autoScaleUp(e.x), DPIUtil.autoScaleUp(e.y), 0, false, java.awt.event.MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, e.count);
   }
 
   public void keyPressed(KeyEvent e) {
index 84f2fb4169ef40b3b210c3821cc5b070ed5b044a..c905a72f3020a614d6fdce63f13ca87af3376478 100644 (file)
@@ -2,6 +2,8 @@ package vtk.rendering;
 
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.eclipse.swt.internal.DPIUtil;
+
 import vtk.vtkAxesActor;
 import vtk.vtkCamera;
 import vtk.vtkGenericRenderWindowInteractor;
@@ -130,7 +132,8 @@ public abstract class vtkAbstractComponent<T> implements vtkComponent<T> {
     if (renderWindow == null || windowInteractor == null) {
       return; // Nothing to do we are deleted...
     }
-
+    w = DPIUtil.autoScaleUp(w);
+    h = DPIUtil.autoScaleUp(h);
     try {
       lock.lockInterruptibly();
       renderWindow.SetSize(w, h);