mirror of
https://github.com/ocornut/imgui.git
synced 2025-12-20 13:25:39 +00:00
Nav: shallow tweaks.
This commit is contained in:
15
imgui.cpp
15
imgui.cpp
@@ -13808,13 +13808,13 @@ void ImGui::NavUpdateCreateMoveRequest()
|
|||||||
|
|
||||||
// Update PageUp/PageDown/Home/End scroll
|
// Update PageUp/PageDown/Home/End scroll
|
||||||
// FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag?
|
// FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag?
|
||||||
float scoring_rect_offset_y = 0.0f;
|
float scoring_page_offset_y = 0.0f;
|
||||||
if (window && g.NavMoveDir == ImGuiDir_None && nav_keyboard_active)
|
if (window && g.NavMoveDir == ImGuiDir_None && nav_keyboard_active)
|
||||||
scoring_rect_offset_y = NavUpdatePageUpPageDown();
|
scoring_page_offset_y = NavUpdatePageUpPageDown();
|
||||||
if (scoring_rect_offset_y != 0.0f)
|
if (scoring_page_offset_y != 0.0f)
|
||||||
{
|
{
|
||||||
g.NavScoringNoClipRect = window->InnerRect;
|
g.NavScoringNoClipRect = window->InnerRect;
|
||||||
g.NavScoringNoClipRect.TranslateY(scoring_rect_offset_y);
|
g.NavScoringNoClipRect.TranslateY(scoring_page_offset_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [DEBUG] Always send a request when holding Ctrl. Hold Ctrl + Arrow change the direction.
|
// [DEBUG] Always send a request when holding Ctrl. Hold Ctrl + Arrow change the direction.
|
||||||
@@ -13879,12 +13879,13 @@ void ImGui::NavUpdateCreateMoveRequest()
|
|||||||
{
|
{
|
||||||
ImRect nav_rect_rel = !window->NavRectRel[g.NavLayer].IsInverted() ? window->NavRectRel[g.NavLayer] : ImRect(0, 0, 0, 0);
|
ImRect nav_rect_rel = !window->NavRectRel[g.NavLayer].IsInverted() ? window->NavRectRel[g.NavLayer] : ImRect(0, 0, 0, 0);
|
||||||
scoring_rect = WindowRectRelToAbs(window, nav_rect_rel);
|
scoring_rect = WindowRectRelToAbs(window, nav_rect_rel);
|
||||||
scoring_rect.TranslateY(scoring_rect_offset_y);
|
scoring_rect.TranslateY(scoring_page_offset_y);
|
||||||
|
//GetForegroundDrawList()->AddRectFilled(scoring_rect.Min - ImVec2(1, 1), scoring_rect.Max + ImVec2(1, 1), IM_COL32(255, 100, 0, 80)); // [DEBUG] Pre-bias
|
||||||
if (g.NavMoveSubmitted)
|
if (g.NavMoveSubmitted)
|
||||||
NavBiasScoringRect(scoring_rect, window->RootWindowForNav->NavPreferredScoringPosRel[g.NavLayer], g.NavMoveDir, g.NavMoveFlags);
|
NavBiasScoringRect(scoring_rect, window->RootWindowForNav->NavPreferredScoringPosRel[g.NavLayer], g.NavMoveDir, g.NavMoveFlags);
|
||||||
IM_ASSERT(!scoring_rect.IsInverted()); // Ensure we have a non-inverted bounding box here will allow us to remove extraneous ImFabs() calls in NavScoreItem().
|
IM_ASSERT(!scoring_rect.IsInverted()); // Ensure we have a non-inverted bounding box here will allow us to remove extraneous ImFabs() calls in NavScoreItem().
|
||||||
//GetForegroundDrawList()->AddRect(scoring_rect.Min, scoring_rect.Max, IM_COL32(255,200,0,255)); // [DEBUG]
|
//GetForegroundDrawList()->AddRectFilled(scoring_rect.Min - ImVec2(1, 1), scoring_rect.Max + ImVec2(1, 1), IM_COL32(255, 100, 0, 80)); // [DEBUG] Post-bias
|
||||||
//if (!g.NavScoringNoClipRect.IsInverted()) { GetForegroundDrawList()->AddRect(g.NavScoringNoClipRect.Min, g.NavScoringNoClipRect.Max, IM_COL32(255, 200, 0, 255)); } // [DEBUG]
|
//if (!g.NavScoringNoClipRect.IsInverted()) { GetForegroundDrawList()->AddRectFilled(g.NavScoringNoClipRect.Min, g.NavScoringNoClipRect.Max, IM_COL32(100, 255, 0, 80)); } // [DEBUG]
|
||||||
}
|
}
|
||||||
g.NavScoringRect = scoring_rect;
|
g.NavScoringRect = scoring_rect;
|
||||||
//g.NavScoringNoClipRect.Add(scoring_rect);
|
//g.NavScoringNoClipRect.Add(scoring_rect);
|
||||||
|
|||||||
@@ -1722,7 +1722,7 @@ enum ImGuiNavMoveFlags_
|
|||||||
ImGuiNavMoveFlags_WrapMask_ = ImGuiNavMoveFlags_LoopX | ImGuiNavMoveFlags_LoopY | ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_WrapY,
|
ImGuiNavMoveFlags_WrapMask_ = ImGuiNavMoveFlags_LoopX | ImGuiNavMoveFlags_LoopY | ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_WrapY,
|
||||||
ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place)
|
ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place)
|
||||||
ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown)
|
ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown)
|
||||||
ImGuiNavMoveFlags_ScrollToEdgeY = 1 << 6, // Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword, probably unnecessary
|
ImGuiNavMoveFlags_ScrollToEdgeY = 1 << 6, // Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword as ImGuiScrollFlags
|
||||||
ImGuiNavMoveFlags_Forwarded = 1 << 7,
|
ImGuiNavMoveFlags_Forwarded = 1 << 7,
|
||||||
ImGuiNavMoveFlags_DebugNoResult = 1 << 8, // Dummy scoring for debug purpose, don't apply result
|
ImGuiNavMoveFlags_DebugNoResult = 1 << 8, // Dummy scoring for debug purpose, don't apply result
|
||||||
ImGuiNavMoveFlags_FocusApi = 1 << 9, // Requests from focus API can land/focus/activate items even if they are marked with _NoTabStop (see NavProcessItemForTabbingRequest() for details)
|
ImGuiNavMoveFlags_FocusApi = 1 << 9, // Requests from focus API can land/focus/activate items even if they are marked with _NoTabStop (see NavProcessItemForTabbingRequest() for details)
|
||||||
|
|||||||
Reference in New Issue
Block a user