From a4415dcc8ad88d02025c6a1eb9764af7de81b234 Mon Sep 17 00:00:00 2001
From: XenHat <xenhat.hex@gmail.com>
Date: Thu, 15 Oct 2020 00:20:00 +0000
Subject: [PATCH] Add option to disable mouse steering

---
 indra/newview/app_settings/settings_alchemy.xml       | 11 +++++++++++
 indra/newview/lltoolpie.cpp                           |  2 +-
 .../skins/default/xui/en/panel_preferences_move.xml   | 11 +++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml
index 75b8c728176..dd5eca0002c 100644
--- a/indra/newview/app_settings/settings_alchemy.xml
+++ b/indra/newview/app_settings/settings_alchemy.xml
@@ -233,6 +233,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>AlchemyDisableMouseSteering</key>
+    <map>
+      <key>Comment</key>
+      <string>Disable mouse steering. Doing so will stop your camera from resetting, and your avatar from rotating when you click yourself (escape key-like behaviour).</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
     <key>AlchemyLookAtShow</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index f98fcc9a7b6..1c1ec8af35a 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -481,7 +481,7 @@ BOOL LLToolPie::handleLeftClickPick()
 		}
 		object = (LLViewerObject*)object->getParent();
 	}
-	if (object && object == gAgentAvatarp)
+	if (object && object == gAgentAvatarp && !gSavedSettings.getBool("AlchemyDisableMouseSteering"))
 	{
 		// we left clicked on avatar, switch to focus mode
 		mMouseButtonDown = false;
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
index 8794e3bf95a..a55c7d1be94 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml
@@ -161,6 +161,17 @@
    name="first_person_avatar_visible"
    top_pad="5"
    width="256" />
+  <check_box
+   control_name="AlchemyDisableMouseSteering"
+   follows="left|top"
+   height="20"
+   label="Disable mouse steering"
+   layout="topleft"
+   left_delta="0"
+   name="disable_mouse_steering"
+   tool_tip="Mouse steering resets your camera and avatar position to face away from the camera when you click your avatar."
+   top_pad="0"
+   width="256" />
   <text
    type="string"
    length="1"
-- 
GitLab