dmuratshin пре 9 година
родитељ
комит
6b0652798d
2 измењених фајлова са 14 додато и 8 уклоњено
  1. 2 0
      oxygine/src/Input.cpp
  2. 12 8
      oxygine/src/SlidingActor.cpp

+ 2 - 0
oxygine/src/Input.cpp

@@ -95,6 +95,8 @@ namespace oxygine
 
     PointerState* Input::getTouchByIndex(pointer_index index_)
     {
+        OX_ASSERT(index_ != 0);
+
         int index = index_;
         if (index == MAX_TOUCHES + 1)
             return &_pointerMouse;

+ 12 - 8
oxygine/src/SlidingActor.cpp

@@ -5,6 +5,7 @@
 //#include "Draggable.h"
 #include "initActor.h"
 #include "Serialize.h"
+#include "Stage.h"
 
 namespace oxygine
 {
@@ -323,22 +324,25 @@ namespace oxygine
                     if (_holded && (d >= _rad * _rad))
                     {
                         spActor act = safeSpCast<Actor>(_holded);
-                        while (act && act.get() != _content.get())
-                        {
-                            for (int i = 0; i < MouseButton_Num; ++i)
-                                act->setNotPressed((MouseButton)i);
-                            act = act->getParent();
-                        }
-
 
                         TouchEvent ev(TouchEvent::TOUCH_UP, true, Vector2(-100000, -100000));
+                        ev.index = te->index;
 
                         _ignoreTouchUp = true;
                         _drag.setIgnoreTouchUp(true);
-                        _holded->dispatchEvent(&ev);
+                        _stage->dispatchEvent(&ev);
                         _drag.setIgnoreTouchUp(false);
                         _ignoreTouchUp = false;
 
+
+                        while (act && act.get() != _content.get())
+                        {
+                            for (int i = 0; i < MouseButton_Num; ++i)
+                                act->setNotPressed((MouseButton)i);
+                            act = act->getParent();
+                        }
+
+
                         _holded = 0;
                     }
                 }