|
@@ -363,6 +363,7 @@ CODE
|
|
|
When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files.
|
|
|
You can read releases logs https://github.com/ocornut/imgui/releases for more details.
|
|
|
|
|
|
+ - 2019/01/04 (1.67) - renamed io.InputCharacters[], marked internal as was always intended. Please don't access directly, and use AddInputCharacter() instead!
|
|
|
- 2018/12/10 (1.67) - renamed io.ConfigResizeWindowsFromEdges to io.ConfigWindowsResizeFromEdges as we are doing a large pass on configuration flags.
|
|
|
- 2018/10/12 (1.66) - renamed misc/stl/imgui_stl.* to misc/cpp/imgui_stdlib.* in prevision for other C++ helper files.
|
|
|
- 2018/09/28 (1.66) - renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete).
|
|
@@ -1164,22 +1165,23 @@ ImGuiIO::ImGuiIO()
|
|
|
// - on Windows you can get those using ToAscii+keyboard state, or via the WM_CHAR message
|
|
|
void ImGuiIO::AddInputCharacter(ImWchar c)
|
|
|
{
|
|
|
- const int n = ImStrlenW(InputCharacters);
|
|
|
- if (n + 1 < IM_ARRAYSIZE(InputCharacters))
|
|
|
+ InputQueueCharacters.push_back(c);
|
|
|
+}
|
|
|
+
|
|
|
+void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars)
|
|
|
+{
|
|
|
+ while (*utf8_chars != 0)
|
|
|
{
|
|
|
- InputCharacters[n] = c;
|
|
|
- InputCharacters[n+1] = '\0';
|
|
|
+ unsigned int c = 0;
|
|
|
+ utf8_chars += ImTextCharFromUtf8(&c, utf8_chars, NULL);
|
|
|
+ if (c > 0 && c <= 0xFFFF)
|
|
|
+ InputQueueCharacters.push_back((ImWchar)c);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars)
|
|
|
+void ImGuiIO::ClearInputCharacters()
|
|
|
{
|
|
|
- // We can't pass more wchars than ImGuiIO::InputCharacters[] can hold so don't convert more
|
|
|
- const int wchars_buf_len = sizeof(ImGuiIO::InputCharacters) / sizeof(ImWchar);
|
|
|
- ImWchar wchars[wchars_buf_len];
|
|
|
- ImTextStrFromUtf8(wchars, wchars_buf_len, utf8_chars, NULL);
|
|
|
- for (int i = 0; i < wchars_buf_len && wchars[i] != 0; i++)
|
|
|
- AddInputCharacter(wchars[i]);
|
|
|
+ InputQueueCharacters.resize(0);
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
@@ -3713,7 +3715,7 @@ void ImGui::EndFrame()
|
|
|
|
|
|
// Clear Input data for next frame
|
|
|
g.IO.MouseWheel = g.IO.MouseWheelH = 0.0f;
|
|
|
- memset(g.IO.InputCharacters, 0, sizeof(g.IO.InputCharacters));
|
|
|
+ g.IO.InputQueueCharacters.resize(0);
|
|
|
memset(g.IO.NavInputs, 0, sizeof(g.IO.NavInputs));
|
|
|
}
|
|
|
|