mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-25 13:07:01 +00:00
Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761)
This commit is contained in:
parent
5ccb66794b
commit
66f0fb986c
@ -56,6 +56,7 @@ Other Changes:
|
|||||||
Home/End leads to scrolling. Fixed not setting mouse position when a failed move request (e.g. when
|
Home/End leads to scrolling. Fixed not setting mouse position when a failed move request (e.g. when
|
||||||
already at edge) reactivates the navigation highlight.
|
already at edge) reactivates the navigation highlight.
|
||||||
- InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682)
|
- InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682)
|
||||||
|
- Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761)
|
||||||
- InputText: made double-click select word, triple-line select line. Word delimitation logic differs
|
- InputText: made double-click select word, triple-line select line. Word delimitation logic differs
|
||||||
slightly from the one used by CTRL+arrows. (#2244)
|
slightly from the one used by CTRL+arrows. (#2244)
|
||||||
- InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) [@actondev]
|
- InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) [@actondev]
|
||||||
|
2
imgui.h
2
imgui.h
@ -64,7 +64,7 @@ Index of this file:
|
|||||||
// Version
|
// Version
|
||||||
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
|
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
|
||||||
#define IMGUI_VERSION "1.86 WIP"
|
#define IMGUI_VERSION "1.86 WIP"
|
||||||
#define IMGUI_VERSION_NUM 18511
|
#define IMGUI_VERSION_NUM 18512
|
||||||
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
|
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
|
||||||
#define IMGUI_HAS_TABLE
|
#define IMGUI_HAS_TABLE
|
||||||
|
|
||||||
|
@ -3966,7 +3966,7 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
|
|||||||
if (is_resizable)
|
if (is_resizable)
|
||||||
IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag!
|
IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag!
|
||||||
|
|
||||||
if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope,
|
if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope (including the scrollbar)
|
||||||
BeginGroup();
|
BeginGroup();
|
||||||
const ImGuiID id = window->GetID(label);
|
const ImGuiID id = window->GetID(label);
|
||||||
const ImVec2 label_size = CalcTextSize(label, NULL, true);
|
const ImVec2 label_size = CalcTextSize(label, NULL, true);
|
||||||
@ -4770,9 +4770,22 @@ bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_
|
|||||||
|
|
||||||
if (is_multiline)
|
if (is_multiline)
|
||||||
{
|
{
|
||||||
|
// For focus requests to work on our multiline we need to ensure our child ItemAdd() call specifies the ImGuiItemFlags_Inputable (ref issue #4761)...
|
||||||
Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y));
|
Dummy(ImVec2(text_size.x, text_size.y + style.FramePadding.y));
|
||||||
|
ImGuiItemFlags backup_item_flags = g.CurrentItemFlags;
|
||||||
|
g.CurrentItemFlags |= ImGuiItemFlags_Inputable;
|
||||||
EndChild();
|
EndChild();
|
||||||
|
g.CurrentItemFlags = backup_item_flags;
|
||||||
|
|
||||||
|
// ...and then we need to undo the group overriding last item data, which gets a bit messy as EndGroup() tries to forward scrollbar being active...
|
||||||
|
ImGuiLastItemData item_data = g.LastItemData;
|
||||||
EndGroup();
|
EndGroup();
|
||||||
|
if (g.LastItemData.ID == 0)
|
||||||
|
{
|
||||||
|
g.LastItemData.ID = id;
|
||||||
|
g.LastItemData.InFlags = item_data.InFlags;
|
||||||
|
g.LastItemData.StatusFlags = item_data.StatusFlags;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log as text
|
// Log as text
|
||||||
|
Loading…
Reference in New Issue
Block a user