Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code from accessing keys. (#5888, #4921, #456)

Amend 4448d97. This is more consistent with input owner design.
This commit is contained in:
ocornut 2022-11-16 17:53:35 +01:00
parent d60985df7f
commit 7bee9a8f96
2 changed files with 5 additions and 3 deletions

View File

@ -35,7 +35,9 @@ HOW TO UPDATE?
VERSION 1.89.1 (In Progress) VERSION 1.89.1 (In Progress)
----------------------------------------------------------------------- -----------------------------------------------------------------------
- Inputs: fix moving a window or drag and dropping from capture mods. (#5888, #4921, #456) - Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code
from accessing keys. (#5888, #4921, #456)
- Inputs: fixed moving a window or drag and dropping from capturing mods. (#5888, #4921, #456)
----------------------------------------------------------------------- -----------------------------------------------------------------------

View File

@ -8537,7 +8537,7 @@ ImGuiID ImGui::GetKeyOwner(ImGuiKey key)
ImGuiKeyOwnerData* owner_data = GetKeyOwnerData(key); ImGuiKeyOwnerData* owner_data = GetKeyOwnerData(key);
ImGuiID owner_id = owner_data->OwnerCurr; ImGuiID owner_id = owner_data->OwnerCurr;
if (g.ActiveIdUsingAllKeyboardKeys && owner_id != g.ActiveId) if (g.ActiveIdUsingAllKeyboardKeys && owner_id != g.ActiveId && owner_id != ImGuiKeyOwner_Any)
if (key >= ImGuiKey_Keyboard_BEGIN && key < ImGuiKey_Keyboard_END) if (key >= ImGuiKey_Keyboard_BEGIN && key < ImGuiKey_Keyboard_END)
return ImGuiKeyOwner_None; return ImGuiKeyOwner_None;
@ -8554,7 +8554,7 @@ bool ImGui::TestKeyOwner(ImGuiKey key, ImGuiID owner_id)
return true; return true;
ImGuiContext& g = *GImGui; ImGuiContext& g = *GImGui;
if (g.ActiveIdUsingAllKeyboardKeys && owner_id != g.ActiveId) if (g.ActiveIdUsingAllKeyboardKeys && owner_id != g.ActiveId && owner_id != ImGuiKeyOwner_Any)
if (key >= ImGuiKey_Keyboard_BEGIN && key < ImGuiKey_Keyboard_END) if (key >= ImGuiKey_Keyboard_BEGIN && key < ImGuiKey_Keyboard_END)
return false; return false;