mirror of
https://github.com/ocornut/imgui.git
synced 2025-09-20 10:18:26 +00:00
Nav, Inputs: fixed a crash that could occur when opening a popup following the processing of a global shortcut while no windows were focused.
Regression test: "window_popup_from_shortcut"
This commit is contained in:
@@ -54,6 +54,8 @@ Other Changes:
|
|||||||
e.g. using clipper with ItemsHeight=1 in order to clip in pixel units. (#8886)
|
e.g. using clipper with ItemsHeight=1 in order to clip in pixel units. (#8886)
|
||||||
- Nav: fixed Ctrl+Tab window appearing as empty when the sole active and focused
|
- Nav: fixed Ctrl+Tab window appearing as empty when the sole active and focused
|
||||||
window has the ImGuiWindowFlags_NoNavFocus flag. (#8914)
|
window has the ImGuiWindowFlags_NoNavFocus flag. (#8914)
|
||||||
|
- Nav: fixed a crash that could occur when opening a popup following the processing
|
||||||
|
of a global shortcut while no windows were focused.
|
||||||
- Bullet: fixed tesselation amount which looked out of place in very large sizes.
|
- Bullet: fixed tesselation amount which looked out of place in very large sizes.
|
||||||
- InputText: added ImGuiInputTextFlags_WordWrap flag to word-wrap multi-line buffers.
|
- InputText: added ImGuiInputTextFlags_WordWrap flag to word-wrap multi-line buffers.
|
||||||
(#3237, #952, #1062, #7363). Current caveats:
|
(#3237, #952, #1062, #7363). Current caveats:
|
||||||
|
@@ -13413,6 +13413,9 @@ static ImVec2 ImGui::NavCalcPreferredRefPos()
|
|||||||
|
|
||||||
const bool activated_shortcut = g.ActiveId != 0 && g.ActiveIdFromShortcut && g.ActiveId == g.LastItemData.ID;
|
const bool activated_shortcut = g.ActiveId != 0 && g.ActiveIdFromShortcut && g.ActiveId == g.LastItemData.ID;
|
||||||
|
|
||||||
|
if (source != ImGuiInputSource_Mouse && !activated_shortcut && window == NULL)
|
||||||
|
source = ImGuiInputSource_Mouse;
|
||||||
|
|
||||||
// Testing for !activated_shortcut here could in theory be removed if we decided that activating a remote shortcut altered one of the g.NavDisableXXX flag.
|
// Testing for !activated_shortcut here could in theory be removed if we decided that activating a remote shortcut altered one of the g.NavDisableXXX flag.
|
||||||
if (source == ImGuiInputSource_Mouse)
|
if (source == ImGuiInputSource_Mouse)
|
||||||
{
|
{
|
||||||
@@ -13432,7 +13435,7 @@ static ImVec2 ImGui::NavCalcPreferredRefPos()
|
|||||||
ref_rect = WindowRectRelToAbs(window, window->NavRectRel[g.NavLayer]);
|
ref_rect = WindowRectRelToAbs(window, window->NavRectRel[g.NavLayer]);
|
||||||
|
|
||||||
// Take account of upcoming scrolling (maybe set mouse pos should be done in EndFrame?)
|
// Take account of upcoming scrolling (maybe set mouse pos should be done in EndFrame?)
|
||||||
if (window->LastFrameActive != g.FrameCount && (window->ScrollTarget.x != FLT_MAX || window->ScrollTarget.y != FLT_MAX))
|
if (window != NULL && window->LastFrameActive != g.FrameCount && (window->ScrollTarget.x != FLT_MAX || window->ScrollTarget.y != FLT_MAX))
|
||||||
{
|
{
|
||||||
ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window);
|
ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window);
|
||||||
ref_rect.Translate(window->Scroll - next_scroll);
|
ref_rect.Translate(window->Scroll - next_scroll);
|
||||||
|
Reference in New Issue
Block a user