@@ -847,52 +847,51 @@ void MarlinUI::init() {
847
847
if (processing) return ; // Prevent re-entry from idle() calls
848
848
849
849
// Add a manual move to the queue?
850
- if (axis != NO_AXIS_ENUM && ELAPSED (millis (), start_time) && ! planner.is_full ()) {
850
+ if (axis == NO_AXIS_ENUM || PENDING (millis (), start_time) || planner.is_full ()) return ;
851
851
852
- const feedRate_t fr_mm_s = (axis < LOGICAL_AXES) ? manual_feedrate_mm_s[axis] : XY_PROBE_FEEDRATE_MM_S;
852
+ const feedRate_t fr_mm_s = (axis < LOGICAL_AXES) ? manual_feedrate_mm_s[axis] : XY_PROBE_FEEDRATE_MM_S;
853
853
854
- #if IS_KINEMATIC
854
+ #if IS_KINEMATIC
855
855
856
- #if HAS_MULTI_EXTRUDER
857
- REMEMBER (ae, active_extruder);
858
- #if MULTI_E_MANUAL
859
- if (axis == E_AXIS) active_extruder = e_index;
860
- #endif
856
+ #if HAS_MULTI_EXTRUDER
857
+ REMEMBER (ae, active_extruder);
858
+ #if MULTI_E_MANUAL
859
+ if (axis == E_AXIS) active_extruder = e_index;
861
860
#endif
861
+ #endif
862
862
863
- // Apply a linear offset to a single axis
864
- if (axis == ALL_AXES_ENUM)
865
- destination = all_axes_destination;
866
- else if (axis <= LOGICAL_AXES) {
867
- destination = current_position;
868
- destination[axis] += offset;
869
- }
863
+ // Apply a linear offset to a single axis
864
+ if (axis == ALL_AXES_ENUM)
865
+ destination = all_axes_destination;
866
+ else if (axis <= LOGICAL_AXES) {
867
+ destination = current_position;
868
+ destination[axis] += offset;
869
+ }
870
870
871
- // Reset for the next move
872
- offset = 0 ;
873
- axis = NO_AXIS_ENUM;
871
+ // Reset for the next move
872
+ offset = 0 ;
873
+ axis = NO_AXIS_ENUM;
874
874
875
- // DELTA and SCARA machines use segmented moves, which could fill the planner during the call to
876
- // move_to_destination. This will cause idle() to be called, which can then call this function while the
877
- // previous invocation is being blocked. Modifications to offset shouldn't be made while
878
- // processing is true or the planner will get out of sync.
879
- processing = true ;
880
- prepare_internal_move_to_destination (fr_mm_s); // will set current_position from destination
881
- processing = false ;
875
+ // DELTA and SCARA machines use segmented moves, which could fill the planner during the call to
876
+ // move_to_destination. This will cause idle() to be called, which can then call this function while the
877
+ // previous invocation is being blocked. Modifications to offset shouldn't be made while
878
+ // processing is true or the planner will get out of sync.
879
+ processing = true ;
880
+ prepare_internal_move_to_destination (fr_mm_s); // will set current_position from destination
881
+ processing = false ;
882
882
883
- #else
883
+ #else
884
884
885
- // For Cartesian / Core motion simply move to the current_position
886
- planner.buffer_line (current_position, fr_mm_s,
887
- TERN_ (MULTI_E_MANUAL, axis == E_AXIS ? e_index :) active_extruder
888
- );
885
+ // For Cartesian / Core motion simply move to the current_position
886
+ planner.buffer_line (current_position, fr_mm_s,
887
+ TERN_ (MULTI_E_MANUAL, axis == E_AXIS ? e_index :) active_extruder
888
+ );
889
889
890
- // SERIAL_ECHOLNPGM("Add planner.move with Axis ", C(AXIS_CHAR(axis)), " at FR ", fr_mm_s);
890
+ // SERIAL_ECHOLNPGM("Add planner.move with Axis ", C(AXIS_CHAR(axis)), " at FR ", fr_mm_s);
891
891
892
- axis = NO_AXIS_ENUM;
892
+ axis = NO_AXIS_ENUM;
893
893
894
- #endif
895
- }
894
+ #endif
896
895
}
897
896
898
897
//
0 commit comments