IO: added AddMouseViewportEvent() + used in backends.

This commit is contained in:
ocornut
2022-01-18 17:24:59 +01:00
parent 1338eb31f7
commit e278277d53
8 changed files with 48 additions and 22 deletions

View File

@ -1390,6 +1390,19 @@ void ImGuiIO::AddMouseButtonEvent(int mouse_button, bool down)
g.InputEventsQueue.push_back(e);
}
void ImGuiIO::AddMouseViewportEvent(ImGuiID viewport_id)
{
ImGuiContext& g = *GImGui;
IM_ASSERT(&g.IO == this && "Can only add events to current context.");
IM_ASSERT(g.IO.BackendFlags & ImGuiBackendFlags_HasMouseHoveredViewport);
ImGuiInputEvent e;
e.Type = ImGuiInputEventType_MouseViewport;
e.Source = ImGuiInputSource_Mouse;
e.MouseViewport.HoveredViewportID = viewport_id;
g.InputEventsQueue.push_back(e);
}
void ImGuiIO::AddFocusEvent(bool focused)
{
ImGuiContext& g = *GImGui;
@ -8354,6 +8367,10 @@ void ImGui::UpdateInputEvents(bool trickle_fast_inputs)
mouse_wheeled = true;
}
}
else if (e->Type == ImGuiInputEventType_MouseViewport)
{
io.MouseHoveredViewport = e->MouseViewport.HoveredViewportID;
}
else if (e->Type == ImGuiInputEventType_Key)
{
IM_ASSERT(e->Key.Key != ImGuiKey_None);