Fix partial redraw during filament autoload
If the printer was already being pre-heated but didn't reach the target temperature yet and a new filament is being inserted, the LCD used to display a "Preheating to load" message to block the loading until the extruder is hot. This message is currently missing, and the ">Cancel" option doesn't display immediately either, depending on the extruder height. This PR fixes this behavior, which was broken during an earlier update. We now force-update LCD updates during the first (and _only_) time the screen is setup, and push all messages _before_ the carriage is eventually raised, so that ">Cancel" is shown immediately as well.
This commit is contained in:
parent
10de97c042
commit
bc355674d9
@ -2201,15 +2201,16 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lcd_set_cursor(0, 0);
|
|
||||||
lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0));
|
|
||||||
|
|
||||||
if (!bFilamentWaitingFlag)
|
if (!bFilamentWaitingFlag)
|
||||||
{
|
{
|
||||||
// First run after the filament preheat selection:
|
// First run after the filament preheat selection:
|
||||||
// setup the fixed LCD parts and raise Z as we wait
|
// setup the fixed LCD parts and raise Z as we wait
|
||||||
bFilamentWaitingFlag = true;
|
bFilamentWaitingFlag = true;
|
||||||
|
|
||||||
|
lcd_clear();
|
||||||
|
lcd_draw_update = 1;
|
||||||
|
lcd_puts_at_P(0, 3, _i(">Cancel")); ////MSG_ c=20 r=1
|
||||||
|
|
||||||
lcd_set_cursor(0, 1);
|
lcd_set_cursor(0, 1);
|
||||||
switch (eFilamentAction)
|
switch (eFilamentAction)
|
||||||
{
|
{
|
||||||
@ -2236,9 +2237,11 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
|||||||
// handled earlier
|
// handled earlier
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
lcd_puts_at_P(0, 3, _i(">Cancel")); ////MSG_ c=20 r=1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lcd_set_cursor(0, 0);
|
||||||
|
lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0));
|
||||||
|
|
||||||
if (lcd_clicked())
|
if (lcd_clicked())
|
||||||
{
|
{
|
||||||
bFilamentWaitingFlag = false;
|
bFilamentWaitingFlag = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user