diff --git a/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp b/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp index 9e09fc1b8e..0b0aae3eaa 100644 --- a/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp +++ b/glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp @@ -257,8 +257,9 @@ bool InputExpr(const char* label, V* v, const char* format, #endif } - bool changed = ImGui::InputText(label, inputBuffer, kBufferSize, flags); + ImGui::InputText(label, inputBuffer, kBufferSize, flags); bool active = ImGui::IsItemActive(); + bool changed = ImGui::IsItemDeactivatedAfterEdit(); if (active || changed) { InputExprState& state = exprStates[id]; diff --git a/glass/src/libnt/native/cpp/NetworkTables.cpp b/glass/src/libnt/native/cpp/NetworkTables.cpp index 6d43c04924..34ca96b3f2 100644 --- a/glass/src/libnt/native/cpp/NetworkTables.cpp +++ b/glass/src/libnt/native/cpp/NetworkTables.cpp @@ -1428,8 +1428,9 @@ static void EmitEntryValueEditable(NetworkTablesModel* model, } case NT_STRING: { char* v = GetTextBuffer(entry.valueStr); - if (ImGui::InputText(typeStr, v, kTextBufferSize, - ImGuiInputTextFlags_EnterReturnsTrue)) { + ImGui::InputText(typeStr, v, kTextBufferSize, + ImGuiInputTextFlags_EnterReturnsTrue); + if (ImGui::IsItemDeactivatedAfterEdit()) { if (v[0] == '"') { if (entry.publisher == 0) { entry.publisher =