G28 O respects HOME_AFTER_DEACTIVATE

Addressing #11271
This commit is contained in:
Scott Lahteine 2018-11-05 02:19:55 -06:00
parent 3866aeac52
commit 427bc64ba1
2 changed files with 17 additions and 9 deletions

View File

@ -192,7 +192,14 @@ void GcodeSuite::G28(const bool always_home_all) {
}
#endif
if (all_axes_known() && parser.boolval('O')) { // home only if needed
if (parser.boolval('O')) {
if (
#if ENABLED(HOME_AFTER_DEACTIVATE)
all_axes_known() // homing needed anytime steppers deactivate
#else
all_axes_homed() // homing needed only if never homed
#endif
) {
#if ENABLED(DEBUG_LEVELING_FEATURE)
if (DEBUGGING(LEVELING)) {
SERIAL_ECHOLNPGM("> homing not needed, skip");
@ -201,6 +208,7 @@ void GcodeSuite::G28(const bool always_home_all) {
#endif
return;
}
}
// Wait for planner moves to finish!
planner.synchronize();

View File

@ -1157,7 +1157,7 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
#if ENABLED(HOME_AFTER_DEACTIVATE) || ENABLED(Z_SAFE_HOMING)
#error "DISABLE_[XYZ] is not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING."
#endif
#endif // DISABLE_[XYZ]
#endif
/**
* Filament Width Sensor