From 6dafb90c0143d615430138f213a0fd232610119a Mon Sep 17 00:00:00 2001
From: silentninja1 <silent.ninja1@gmail.com>
Date: Sat, 28 Jul 2018 11:33:31 -0400
Subject: [PATCH] [2.0.x]Idex and bl touch fixes (#11395)

* Fix BLTouch homing

Deploy at start, dont call generic stow function at finish or raise goes too high before setting 0

* Update tool_change.cpp

* Update motion.cpp

* Update motion.cpp

* Update motion.cpp

* Update motion.cpp

* Change brackets to be more in align of Marlin coding standards
---
 Marlin/src/module/tool_change.cpp | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp
index 35c52cf7ae..bd8264b70d 100644
--- a/Marlin/src/module/tool_change.cpp
+++ b/Marlin/src/module/tool_change.cpp
@@ -377,8 +377,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
           #endif
         }
 
-        // Save current position to destination, for use later
-        set_destination_from_current();
+        
 
         #if HAS_LEVELING
           // Set current position to the physical position
@@ -387,11 +386,15 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
         #endif
 
         #if ENABLED(DUAL_X_CARRIAGE)
-
+          if(current_position[X_AXIS] != x_home_pos(active_extruder))
+            set_destination_from_current();
+          else
+            no_move = true;
           dualx_tool_change(tmp_extruder, no_move); // Can modify no_move
 
         #else // !DUAL_X_CARRIAGE
-
+          // Save current position to destination, for use later
+          set_destination_from_current();
           #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
             parking_extruder_tool_change(tmp_extruder, no_move);
           #endif