From e2545231b8858fc8957802e34bdfe564a7bcd99b Mon Sep 17 00:00:00 2001 From: Wispy <101812473+WispySparks@users.noreply.github.com> Date: Sat, 25 May 2024 11:19:52 -0500 Subject: [PATCH] [glass] Save input after clicking away (#6657) --- glass/src/lib/native/cpp/support/ExtraGuiWidgets.cpp | 3 ++- glass/src/libnt/native/cpp/NetworkTables.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) 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 =