[dasher] Fix circle start handler when click-to-start inside (where) circle (will be)



commit 5dac719e8e4d6248657cd9821a86da79b289a42b
Author: Alan Lawrence <acl33 inf phy cam ac uk>
Date:   Fri Feb 18 11:56:19 2011 +0000

    Fix circle start handler when click-to-start inside (where) circle (will be)

 Src/DasherCore/CircleStartHandler.cpp |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/Src/DasherCore/CircleStartHandler.cpp b/Src/DasherCore/CircleStartHandler.cpp
index 9cad985..c363934 100644
--- a/Src/DasherCore/CircleStartHandler.cpp
+++ b/Src/DasherCore/CircleStartHandler.cpp
@@ -99,7 +99,7 @@ void CCircleStartHandler::Timer(int iTime, dasherint mouseX, dasherint mouseY,CD
 }
 
 void CCircleStartHandler::HandleEvent(Dasher::CEvent * pEvent) {
-  if(pEvent->m_iEventType == 1) {
+  if(pEvent->m_iEventType == EV_PARAM_NOTIFY) {
     Dasher::CParameterNotificationEvent * pEvt(static_cast < Dasher::CParameterNotificationEvent * >(pEvent));
    
     switch (pEvt->m_iParameter) {
@@ -110,6 +110,11 @@ void CCircleStartHandler::HandleEvent(Dasher::CEvent * pEvent) {
       break;
     case BP_DASHER_PAUSED:
       m_iEnterTime = std::numeric_limits<long>::max();
+      //In one-dimensional mode, we have that (un)pausing can _move_ the circle, thus,
+      // clicking (or using any other start mechanism) can cause the circle to appear
+      // around the mouse. If this happens, you should have to leave and re-enter
+      // the circle before the start handler does anything. The following ensures this.
+      m_bInCircle = true;
       break;
     }
   }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]