mirror of https://github.com/ocornut/imgui
Nav: Fixed rare crash when e.g. releasing Alt-key while focusing a window with a menu at the same frame as clearing the focus. This was in most noticeable in some back-ends with emits key release events when focusing another viewport. (#2609)
This commit is contained in:
parent
6614bab883
commit
57d8ab62f4
|
@ -56,6 +56,10 @@ Other Changes:
|
||||||
- Combo: Fixed rounding not applying with the ImGuiComboFlags_NoArrowButton flag. (#2607) [@DucaRii]
|
- Combo: Fixed rounding not applying with the ImGuiComboFlags_NoArrowButton flag. (#2607) [@DucaRii]
|
||||||
- Nav: Fixed gamepad/keyboard moving of window affecting contents size incorrectly, sometimes leading
|
- Nav: Fixed gamepad/keyboard moving of window affecting contents size incorrectly, sometimes leading
|
||||||
to scrollbars appearing during the movement.
|
to scrollbars appearing during the movement.
|
||||||
|
- Nav: Fixed rare crash when e.g. releasing Alt-key while focusing a window with a menu at the same
|
||||||
|
frame as clearing the focus. This was in most noticeable in back-ends such as Glfw and SDL which
|
||||||
|
emits key release events when focusing another viewport, leading to Alt+clicking on void on another
|
||||||
|
viewport triggering the issue. (#2609)
|
||||||
- Style: Added style.WindowMenuButtonPosition (left/right, defaults to ImGuiDir_Left) to move the
|
- Style: Added style.WindowMenuButtonPosition (left/right, defaults to ImGuiDir_Left) to move the
|
||||||
collapsing/docking button to the other side of the title bar.
|
collapsing/docking button to the other side of the title bar.
|
||||||
- Style: Made window close button cross slightly smaller.
|
- Style: Made window close button cross slightly smaller.
|
||||||
|
|
|
@ -7933,10 +7933,10 @@ static void ImGui::NavUpdate()
|
||||||
g.IO.NavInputsDownDuration[i] = (g.IO.NavInputs[i] > 0.0f) ? (g.IO.NavInputsDownDuration[i] < 0.0f ? 0.0f : g.IO.NavInputsDownDuration[i] + g.IO.DeltaTime) : -1.0f;
|
g.IO.NavInputsDownDuration[i] = (g.IO.NavInputs[i] > 0.0f) ? (g.IO.NavInputsDownDuration[i] < 0.0f ? 0.0f : g.IO.NavInputsDownDuration[i] + g.IO.DeltaTime) : -1.0f;
|
||||||
|
|
||||||
// Process navigation init request (select first/default focus)
|
// Process navigation init request (select first/default focus)
|
||||||
if (g.NavInitResultId != 0 && (!g.NavDisableHighlight || g.NavInitRequestFromMove))
|
// In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void)
|
||||||
|
if (g.NavInitResultId != 0 && (!g.NavDisableHighlight || g.NavInitRequestFromMove) && g.NavWindow)
|
||||||
{
|
{
|
||||||
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
|
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
|
||||||
IM_ASSERT(g.NavWindow);
|
|
||||||
if (g.NavInitRequestFromMove)
|
if (g.NavInitRequestFromMove)
|
||||||
SetNavIDWithRectRel(g.NavInitResultId, g.NavLayer, g.NavInitResultRectRel);
|
SetNavIDWithRectRel(g.NavInitResultId, g.NavLayer, g.NavInitResultRectRel);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue