]> rtime.felk.cvut.cz Git - orte.git/blobdiff - orte/contrib/shape_android/src/org/ocera/orte/shape_android/PublisherView.java
Merge branch 'shape_android_features' of https://github.com/Vajnar/orte
[orte.git] / orte / contrib / shape_android / src / org / ocera / orte / shape_android / PublisherView.java
index 35fb23eca75ccef4e4b3483e97c8797570749fe0..d1a0536225e53cc09b1a90ad4743cc36f7d8ad40 100644 (file)
@@ -115,8 +115,9 @@ public class PublisherView extends View
                
                switch (event.getActionMasked()) {
                case MotionEvent.ACTION_DOWN:
-                       myX = (int) event.getX();
-                       myY = (int) event.getY();
+               case MotionEvent.ACTION_POINTER_DOWN:
+                       myX = (int) event.getX(event.getActionIndex());
+                       myY = (int) event.getY(event.getActionIndex());
                        
                        for (PublisherShape shape : shapes) {
                                if (myX <= shape.getBounds().right
@@ -124,26 +125,27 @@ public class PublisherView extends View
                                                && myY >= shape.getBounds().top
                                                && myY <= shape.getBounds().bottom) {
                                        shape.setManual(true);
+                                       shape.setPointerId(event.getPointerId(event.getActionIndex()));
                                        break;
                                }
                        }
                        
                        return true;
                case MotionEvent.ACTION_MOVE:
-                       myX = (int) event.getX();
-                       myY = (int) event.getY();
-                       
                        for (PublisherShape shape : shapes) {
                                if (shape.getManual()) {
+                                       myX = (int) event.getX(event.findPointerIndex(shape.getPointerId()));
+                                       myY = (int) event.getY(event.findPointerIndex(shape.getPointerId()));
+
                                        shape.setBounds((int) (myX - shape.getShape().getWidth()/2), (int) (myY - shape.getShape().getHeight()/2), (int) (myX + shape.getShape().getWidth()/2), (int) (myY + shape.getShape().getHeight()/2));
-                                       break;
                                }
                        }
                        
                        return true;
                case MotionEvent.ACTION_UP:
-                       myX = (int) event.getX();
-                       myY = (int) event.getY();
+               case MotionEvent.ACTION_POINTER_UP:
+                       myX = (int) event.getX(event.getActionIndex());
+                       myY = (int) event.getY(event.getActionIndex());
                        
                        for (PublisherShape shape : shapes) {
                                if (myX <= shape.getBounds().right