mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-18 06:06:35 +00:00
Nav: Tweak code to be easier to follow + updated todo list after clarifying an issue.
This commit is contained in:
parent
38d45ee73f
commit
aa2dda7610
4
TODO.txt
4
TODO.txt
@ -235,8 +235,8 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
|
||||
- nav: menus: allow pressing Menu to leave a sub-menu.
|
||||
- nav: integrate/design keyboard controls.
|
||||
- nav: simulate right-click or context activation? (SHIFT+F10)
|
||||
- nav: tabs should go through most/all widgets (in submission order?)
|
||||
- nav: currently cannot access menubar of a child window with Alt/menu key.
|
||||
- nav: tabs should go through most/all widgets (in submission order?).
|
||||
- nav: cannot access menubar of a flattened child window with Alt/menu key (not a very common use case..).
|
||||
- nav: esc/enter default behavior for popups, e.g. be able to mark an "ok" or "cancel" button that would get triggered by those keys.
|
||||
- focus: preserve ActiveId/focus stack state, e.g. when opening a menu and close it, previously selected InputText() focus gets restored (#622)
|
||||
- focus: SetKeyboardFocusHere() on with >= 0 offset could be done on same frame (else latch and modulate on beginning of next frame)
|
||||
|
13
imgui.cpp
13
imgui.cpp
@ -2289,16 +2289,16 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con
|
||||
if (g.NavInitRequest && g.NavLayer == window->DC.NavLayerCurrent)
|
||||
{
|
||||
// Even if 'ImGuiItemFlags_NoNavDefaultFocus' is on (typically collapse/close button) we record the first ResultId so they can be used as a fallback
|
||||
if (!(item_flags & ImGuiItemFlags_NoNavDefaultFocus) || g.NavInitResultId == 0)
|
||||
{
|
||||
g.NavInitResultId = id;
|
||||
g.NavInitResultRectRel = nav_bb_rel;
|
||||
}
|
||||
if (!(item_flags & ImGuiItemFlags_NoNavDefaultFocus))
|
||||
{
|
||||
g.NavInitRequest = false; // Found a match, clear request
|
||||
NavUpdateAnyRequestFlag();
|
||||
}
|
||||
if (g.NavInitResultId == 0 || !(item_flags & ImGuiItemFlags_NoNavDefaultFocus))
|
||||
{
|
||||
g.NavInitResultId = id;
|
||||
g.NavInitResultRectRel = nav_bb_rel;
|
||||
}
|
||||
}
|
||||
|
||||
// Scoring for navigation
|
||||
@ -13017,7 +13017,8 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
||||
ImGui::Text("HoveredId: 0x%08X/0x%08X (%.2f sec)", g.HoveredId, g.HoveredIdPreviousFrame, g.HoveredIdTimer); // Data is "in-flight" so depending on when the Metrics window is called we may see current frame information or not
|
||||
ImGui::Text("ActiveId: 0x%08X/0x%08X (%.2f sec), ActiveIdSource: %s", g.ActiveId, g.ActiveIdPreviousFrame, g.ActiveIdTimer, input_source_names[g.ActiveIdSource]);
|
||||
ImGui::Text("ActiveIdWindow: '%s'", g.ActiveIdWindow ? g.ActiveIdWindow->Name : "NULL");
|
||||
ImGui::Text("NavWindow: '%s', NavId: 0x%08X, NavLayer: %d", g.NavWindow ? g.NavWindow->Name : "NULL", g.NavId, g.NavLayer);
|
||||
ImGui::Text("NavWindow: '%s'", g.NavWindow ? g.NavWindow->Name : "NULL");
|
||||
ImGui::Text("NavId: 0x%08X, NavLayer: %d", g.NavId, g.NavLayer);
|
||||
ImGui::Text("NavActive: %d, NavVisible: %d", g.IO.NavActive, g.IO.NavVisible);
|
||||
ImGui::Text("NavActivateId: 0x%08X, NavInputId: 0x%08X", g.NavActivateId, g.NavInputId);
|
||||
ImGui::Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover);
|
||||
|
Loading…
Reference in New Issue
Block a user