From 214b1a52578c3b3d884e9c1573dd7e15e40ca6ff Mon Sep 17 00:00:00 2001 From: Marcio Teixeira Date: Thu, 29 Jul 2021 11:23:37 -0600 Subject: [PATCH 1/3] Fix for incorrect handling of string terminator. --- .../ftdi_eve_lib/extended/unicode/unicode.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp index 2bb44e81d0b4..dcf8f435fda7 100644 --- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp +++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp @@ -68,15 +68,17 @@ utf8_char_t FTDI::get_utf8_char_and_inc(const char *&c) { utf8_char_t val = *(uint8_t*)c++; - while ((*c & 0xC0) == 0x80) - val = (val << 8) | *(uint8_t*)c++; + if((val & 0xC0) == 0x80) + while ((*c & 0xC0) == 0x80) + val = (val << 8) | *(uint8_t*)c++; return val; } utf8_char_t FTDI::get_utf8_char_and_inc(char *&c) { utf8_char_t val = *(uint8_t*)c++; - while ((*c & 0xC0) == 0x80) - val = (val << 8) | *(uint8_t*)c++; + if((val & 0xC0) == 0x80) + while ((*c & 0xC0) == 0x80) + val = (val << 8) | *(uint8_t*)c++; return val; } From 7d6cde848dcd0ab2527870af8a4cec9c3aa5d827 Mon Sep 17 00:00:00 2001 From: Marcio Teixeira Date: Thu, 29 Jul 2021 11:39:35 -0600 Subject: [PATCH 2/3] Fix spinner dialog box to allow M0 commands. --- .../ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp | 9 +++++---- .../extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp index 1b267698c37e..fecf407285b5 100644 --- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp +++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp @@ -31,6 +31,10 @@ using namespace ExtUI; constexpr static SpinnerDialogBoxData &mydata = screen_data.SpinnerDialogBox; +void SpinnerDialogBox::onEntry() { + mydata.auto_hide = true; +} + void SpinnerDialogBox::onRedraw(draw_mode_t) { } @@ -38,6 +42,7 @@ void SpinnerDialogBox::show(progmem_str message) { drawMessage(message); drawSpinner(); storeBackground(); + GOTO_SCREEN(SpinnerDialogBox); mydata.auto_hide = false; } @@ -48,16 +53,12 @@ void SpinnerDialogBox::hide() { void SpinnerDialogBox::enqueueAndWait(progmem_str message, progmem_str commands) { show(message); - GOTO_SCREEN(SpinnerDialogBox); ExtUI::injectCommands_P((const char*)commands); - mydata.auto_hide = true; } void SpinnerDialogBox::enqueueAndWait(progmem_str message, char *commands) { show(message); - GOTO_SCREEN(SpinnerDialogBox); ExtUI::injectCommands(commands); - mydata.auto_hide = true; } void SpinnerDialogBox::onIdle() { diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h index deb07285a9b9..4a561980c0ec 100644 --- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h +++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h @@ -31,6 +31,7 @@ struct SpinnerDialogBoxData { class SpinnerDialogBox : public DialogBoxBaseClass, public CachedScreen { public: + static void onEntry(); static void onRedraw(draw_mode_t); static void onIdle(); From 008bd7d1378e26424c2fe485464eb6765eb77f9d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Thu, 29 Jul 2021 18:19:17 -0500 Subject: [PATCH 3/3] format --- .../ftdi_eve_lib/extended/unicode/unicode.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp index dcf8f435fda7..bb622c3cc563 100644 --- a/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp +++ b/Marlin/src/lcd/extui/ftdi_eve_touch_ui/ftdi_eve_lib/extended/unicode/unicode.cpp @@ -68,7 +68,7 @@ utf8_char_t FTDI::get_utf8_char_and_inc(const char *&c) { utf8_char_t val = *(uint8_t*)c++; - if((val & 0xC0) == 0x80) + if ((val & 0xC0) == 0x80) while ((*c & 0xC0) == 0x80) val = (val << 8) | *(uint8_t*)c++; return val; @@ -76,7 +76,7 @@ utf8_char_t FTDI::get_utf8_char_and_inc(char *&c) { utf8_char_t val = *(uint8_t*)c++; - if((val & 0xC0) == 0x80) + if ((val & 0xC0) == 0x80) while ((*c & 0xC0) == 0x80) val = (val << 8) | *(uint8_t*)c++; return val;