]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.g2d/src/org/simantics/g2d/chassis/AWTChassis.java
Trigger all drag start events from single place
[simantics/platform.git] / bundles / org.simantics.g2d / src / org / simantics / g2d / chassis / AWTChassis.java
index 2679ef620ac5c87b65de2337c9a188219895a88e..06b3ca22044dbb9ddfe808fe75ab2a8c94241532 100644 (file)
@@ -16,6 +16,7 @@ import java.awt.Container;
 import java.awt.Cursor;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
+import java.awt.GraphicsEnvironment;
 import java.awt.Rectangle;
 import java.awt.image.VolatileImage;
 import java.lang.reflect.Method;
@@ -31,6 +32,7 @@ import org.simantics.g2d.canvas.IMouseCursorListener;
 import org.simantics.g2d.dnd.DragInteractor;
 import org.simantics.g2d.dnd.DropInteractor;
 import org.simantics.g2d.internal.DebugPolicy;
+import org.simantics.g2d.participant.TransformUtil;
 import org.simantics.scenegraph.g2d.G2DRenderingHints;
 import org.simantics.scenegraph.g2d.events.Event;
 import org.simantics.scenegraph.g2d.events.IEventQueue;
@@ -239,6 +241,12 @@ public class AWTChassis extends JComponent implements ICanvasChassis {
                     holder.addMouseMotionListener(mouseAdapter);
                     holder.addMouseWheelListener(mouseAdapter);
                     holder.addFocusListener(focusAdapter);
+
+                    TransformUtil util = canvasContext.getAtMostOneItemOfClass(TransformUtil.class);
+                    if (util != null) {
+                        mouseAdapter.initDragGestureListener(holder, (control) -> util.controlToCanvas(control, null));
+                    }
+
                 }
             };
             if (AWTThread.getThreadAccess().currentThreadAccess())