Просмотр исходного кода

Control::Listener's on Joystick Control not being notified of RELEASE event when Joystick control is released.
Fixed by notifying listeners of RELEASE event in Joystick::touchEvent(Touch::TouchEvent, int, int, unsigned int) handler.

Kieran Cunney 13 лет назад
Родитель
Сommit
910bd5698f
1 измененных файлов с 6 добавлено и 4 удалено
  1. 6 4
      gameplay/src/Joystick.cpp

+ 6 - 4
gameplay/src/Joystick.cpp

@@ -112,7 +112,7 @@ bool Joystick::touchEvent(Touch::TouchEvent touchEvent, int x, int y, unsigned i
                 {
                 {
                     _value.set(value);
                     _value.set(value);
                     _dirty = true;
                     _dirty = true;
-                    notifyListeners(Control::Listener::VALUE_CHANGED);
+                    notifyListeners(Listener::VALUE_CHANGED);
                 }
                 }
 
 
                 _state = ACTIVE;
                 _state = ACTIVE;
@@ -138,7 +138,7 @@ bool Joystick::touchEvent(Touch::TouchEvent touchEvent, int x, int y, unsigned i
                 {
                 {
                     _value.set(value);
                     _value.set(value);
                     _dirty = true;
                     _dirty = true;
-                    notifyListeners(Control::Listener::VALUE_CHANGED);
+                    notifyListeners(Listener::VALUE_CHANGED);
                 }
                 }
             }
             }
             else
             else
@@ -151,7 +151,7 @@ bool Joystick::touchEvent(Touch::TouchEvent touchEvent, int x, int y, unsigned i
                 {
                 {
                     _value.set(value);
                     _value.set(value);
                     _dirty = true;
                     _dirty = true;
-                    notifyListeners(Control::Listener::VALUE_CHANGED);
+                    notifyListeners(Listener::VALUE_CHANGED);
                 }
                 }
             }
             }
 
 
@@ -163,6 +163,8 @@ bool Joystick::touchEvent(Touch::TouchEvent touchEvent, int x, int y, unsigned i
         {
         {
             _contactIndex = INVALID_CONTACT_INDEX;
             _contactIndex = INVALID_CONTACT_INDEX;
 
 
+            notifyListeners(Listener::RELEASE);
+
             // Reset displacement and direction vectors.
             // Reset displacement and direction vectors.
             _displacement.set(0.0f, 0.0f);
             _displacement.set(0.0f, 0.0f);
 
 
@@ -171,7 +173,7 @@ bool Joystick::touchEvent(Touch::TouchEvent touchEvent, int x, int y, unsigned i
             {
             {
                 _value.set(value);
                 _value.set(value);
                 _dirty = true;
                 _dirty = true;
-                notifyListeners(Control::Listener::VALUE_CHANGED);
+                notifyListeners(Listener::VALUE_CHANGED);
             }
             }
 
 
             _state = NORMAL;
             _state = NORMAL;