diff --git a/src/gui/widget/stringinput.cpp b/src/gui/widget/stringinput.cpp index cef2cea80..064461be3 100644 --- a/src/gui/widget/stringinput.cpp +++ b/src/gui/widget/stringinput.cpp @@ -379,7 +379,6 @@ int CStringInput::exec( CMenuTarget* parent, const std::string & ) for(int count=strlen(value)-1;countshowMenuText(1, value, selected+1); -// strncpy(dispval, value, size); -// } + if ( strncmp(value, dispval, size) != 0) + { + std::string tmp = value; + CVFD::getInstance()->showMenuText(1,tmp.c_str() , selected+1); + strncpy(dispval, value, size); + } g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd, true ); diff --git a/src/gui/widget/stringinput_ext.cpp b/src/gui/widget/stringinput_ext.cpp index fa7f09b73..a29e528c0 100644 --- a/src/gui/widget/stringinput_ext.cpp +++ b/src/gui/widget/stringinput_ext.cpp @@ -151,6 +151,7 @@ int CExtendedInput::exec( CMenuTarget* parent, const std::string & ) } strcpy(oldval, value); + strcpy(dispval, value); paint(); uint64_t timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings @@ -161,7 +162,8 @@ int CExtendedInput::exec( CMenuTarget* parent, const std::string & ) { if ( strcmp(value, dispval) != 0) { - CVFD::getInstance()->showMenuText(1, value, selectedChar+1); + std::string tmp = value; + CVFD::getInstance()->showMenuText(1, tmp.c_str(), selectedChar+1); strcpy(dispval, value); } @@ -190,7 +192,8 @@ int CExtendedInput::exec( CMenuTarget* parent, const std::string & ) if(found) { inputFields[oldSelectedChar]->paint( x+20, y+hheight +20, false ); inputFields[selectedChar]->paint( x+20, y+hheight +20, true ); - CVFD::getInstance()->showMenuText(1, value, selectedChar+1); + std::string tmp = value; + CVFD::getInstance()->showMenuText(1, tmp.c_str(), selectedChar+1); } } else if (msg==CRCInput::RC_right) { bool found = false; @@ -217,7 +220,8 @@ int CExtendedInput::exec( CMenuTarget* parent, const std::string & ) if(found) { inputFields[oldSelectedChar]->paint( x+20, y+hheight +20, false ); inputFields[selectedChar]->paint( x+20, y+hheight +20, true ); - CVFD::getInstance()->showMenuText(1, value, selectedChar+1); + std::string tmp = value; + CVFD::getInstance()->showMenuText(1, tmp.c_str(), selectedChar+1); } } else if ( (CRCInput::getUnicodeValue(msg) != -1) || (msg == CRCInput::RC_red) || (msg == CRCInput::RC_green) || (msg == CRCInput::RC_blue) || (msg == CRCInput::RC_yellow)