From e1bef0ea797ee311296240d8f9a1af1ea65e16c5 Mon Sep 17 00:00:00 2001
From: silentninja1 <silent.ninja1@gmail.com>
Date: Sat, 28 Jul 2018 11:33:35 -0400
Subject: [PATCH] [1.1.x] idex and bl touch fix (#11392)

* [1.1.x] IDEX and BLTouch Fixes

Fix bltouch not deploying during fast home, fix dual x carriage setting opposing side park position as destination on tool change

* Update Marlin_main.cpp

* Update Marlin_main.cpp

* Change brackets to be more in conformance with Marlin coding standards
---
 Marlin/Marlin_main.cpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 2237aee20ee..ae635e475eb 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -12016,9 +12016,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
           const bool leveling_was_active = planner.leveling_active;
@@ -12026,11 +12024,15 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
         #endif
 
         #if ENABLED(DUAL_X_CARRIAGE)
-
+          // Save current position to destination, for use later
+          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
-
+          set_destination_from_current();
           #if ENABLED(PARKING_EXTRUDER) // Dual Parking extruder
             parking_extruder_tool_change(tmp_extruder, no_move);
           #endif