Browse Source

Fix problem, that current_position is rewritten after long_pause() call.

Marek Bel 6 years ago
parent
commit
74be7677cf
1 changed files with 8 additions and 17 deletions
  1. 8 17
      Firmware/ultralcd.cpp

+ 8 - 17
Firmware/ultralcd.cpp

@@ -967,18 +967,8 @@ void lcd_commands()
 {	
 	if (lcd_commands_type == LCD_COMMAND_LONG_PAUSE)
 	{
-		if(lcd_commands_step == 0) {
-			if (card.sdprinting) {
-				card.pauseSDPrint();
-				lcd_setstatuspgm(_T(MSG_FINISHING_MOVEMENTS));
-				lcd_draw_update = 3;
-				lcd_commands_step = 1;
-			}
-			else {
-				lcd_commands_type = 0;
-			}
-		}
-		if (lcd_commands_step == 1 && !blocks_queued() && !homing_flag) {
+		if (!blocks_queued() && !homing_flag)
+		{
 			lcd_setstatuspgm(_i("Print paused"));////MSG_PRINT_PAUSED c=20 r=1
 			isPrintPaused = true;
 			long_pause();
@@ -5522,12 +5512,13 @@ static void lcd_test_menu()
 
 static void pause_print()
 {
-    lcd_clear();
     lcd_puts_P(_i("Pausing"));
-    lcd_setstatuspgm(_i("Print paused"));
     stop_and_save_print_to_ram(0.0,0.0);
-    long_pause();
-    lcd_return_to_status();
+    if (LCD_COMMAND_IDLE == lcd_commands_type)
+    {
+        lcd_commands_type = LCD_COMMAND_LONG_PAUSE;
+        lcd_return_to_status();
+    }
 }
 static void resume_print()
 {
@@ -5628,7 +5619,7 @@ static void lcd_main_menu()
 		if (mesh_bed_leveling_flag == false && homing_flag == false) {
 			if (card.sdprinting)
 			{
-				MENU_ITEM_FUNCTION_P(_i("Pause print"), pause_print);////MSG_PAUSE_PRINT c=0 r=0
+				MENU_ITEM_SUBMENU_P(_i("Pause print"), pause_print);////MSG_PAUSE_PRINT c=0 r=0
 			}
 			else
 			{