summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorcallum <none@none>2011-04-29 15:35:22 -0700
committercallum <none@none>2011-04-29 15:35:22 -0700
commit367823ced0cc885474850b4400c7936d667a7d7a (patch)
tree38491857efc91fe937d6fcbb7dac76e990ac41c5 /indra
parentf56a2e55ccd86e3739f69c3d8dcc007c337bdaa1 (diff)
EXP-623 FIX Selecting fly option while on click to walk path flys avatar to
end point but avatar spins and shakes when arriving at click point
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llagent.cpp3
-rw-r--r--indra/newview/lltoolpie.cpp9
-rw-r--r--indra/newview/lltoolpie.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 7d491a7774..a6d2c96d52 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -62,6 +62,7 @@
#include "llstatusbar.h"
#include "llteleportflags.h"
#include "lltool.h"
+#include "lltoolpie.h"
#include "lltoolmgr.h"
#include "lltrans.h"
#include "llurlentry.h"
@@ -559,6 +560,8 @@ void LLAgent::setFlying(BOOL fly)
// static
void LLAgent::toggleFlying()
{
+ LLToolPie::instance().stopClickToWalk();
+
BOOL fly = !gAgent.getFlying();
gAgent.mMoveTimer.reset();
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 06e0d17b8c..9ec4d33036 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -688,6 +688,15 @@ BOOL LLToolPie::handleMouseUp(S32 x, S32 y, MASK mask)
return LLTool::handleMouseUp(x, y, mask);
}
+void LLToolPie::stopClickToWalk()
+{
+ mPick.mPosGlobal = gAgent.getPositionGlobal();
+ handle_go_to();
+ if(mAutoPilotDestination)
+ {
+ mAutoPilotDestination->markDead();
+ }
+}
BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
{
diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h
index 22359a6db8..d7c79ee223 100644
--- a/indra/newview/lltoolpie.h
+++ b/indra/newview/lltoolpie.h
@@ -67,6 +67,7 @@ public:
LLObjectSelection* getLeftClickSelection() { return (LLObjectSelection*)mLeftClickSelection; }
void resetSelection();
void blockClickToWalk() { mBlockClickToWalk = true; }
+ void stopClickToWalk();
static void selectionPropertiesReceived();